我正在尝试让 Android 应用程序将高分发布到 Facebook,类似于 Facebook 上的 Angry Birds 所做的(它显示在时间轴上,也显示在 Ticker 中)。请记住,该游戏只能在 Android 上运行,并且没有 FB Canvas 应用程序。
目前我发布高分的步骤如下:
- 按下登录按钮时通过 FB 验证用户,仅请求 publish_actions 权限 - 有效
- 通过 FB SDK 调用“/me”请求用户 ID 并将 ID 保存在变量中 - 有效
当用户按下“得分 100 分”时,使用以下代码通过 Facebook SDK 发送 POST 请求:- 有效(调用记录为真)
Bundle params = new Bundle(); params.putString("score", "100"); // appAccessToken is temporarily a constant facebook.setAccessToken(appAccessToken); String response = "null"; try { response = facebook.request(userId + "/scores", params, "POST"); } catch (IOException e) { e.printStackTrace(); } // Logs true if successful Log.d(TAG, response);
- 打开 Facebook 查看游戏的更新,但任何地方都没有显示任何内容,这与 Angry Birds 不同,它会出现在您的时间轴上并显示最高分 - 失败(任何地方都没有任何高分记录
您可能需要的更多信息:
- 应用类别设置为游戏
- 应用程序类型设置为 Web(Native 不允许我正确发布新乐谱)
- 我正在尝试的用户是应用程序的所有者
- 在打开和关闭沙箱的情况下尝试了上述步骤
- 如果我调用https://graph.facebook.com/USER_ID/scores使用适当的 access_token 和用户 ID,我得到了之前发送的 100 分作为响应,因此分数发布似乎有效
问题是为什么它没有出现在提要/时间线/代码中的任何地方。我错过了什么吗?
最佳答案
根据 the documentation和 the official tutorial ,您已正确发布分数。那么,请输入我们的下一个问题:为什么它没有显示在您用户的代码或时间轴上?
答案是,愤怒的小鸟等游戏发布高分的方式实际上混合了评分机制和直接发布到用户流中。 Facebook controls the story types and distribution under which scores will be published ,因此不能保证您的应用程序在您每次向网站发布乐谱时都会生成新的故事项目。引用主要来源:
Facebook says the stories that get the most clicks, likes, and comments will get more distribution in News Feed and on Timeline.
幸运的是,如果用户允许,您可以求助。如果您认为您的用户非常关心发布他们的高分,您可以请求允许直接发布到他们的流并使用您自己的自定义消息。可以找到更多信息here .
关于android - 来自 Android 的 Facebook Score API 调用未在时间轴/代码上显示高分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9817421/