来自Android的Facebook Score API调用未在时间轴/自动收报机上显示高分

zat*_*ata 7 api android facebook opengraph facebook-graph-api

我正在尝试使用Android应用程序向Facebook发布高分,类似于Facebook上的愤怒的小鸟(它会在时间轴上显示并显示在Ticker中).请记住,此游戏仅在Android上运行,并且没有FB Canvas应用程序.

目前我发布高分的步骤如下:

  1. 按下登录按钮时通过FB验证用户,仅请求publish_actions权限 - 有效
  2. 通过FB SDK调用"/ me"并将id保存在变量中来请求用户ID - 工作
  3. 当用户按下"得分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);
    
    Run Code Online (Sandbox Code Playgroud)
  4. 打开Facebook查看游戏的更新,但没有任何地方显示,不像愤怒的小鸟显示在你的时间轴上并显示最高分 - 失败(没有任何高分的记录

您可能需要的更多信息:

  • 应用程序类别设置为Game
  • 应用程序类型设置为Web(Native不允许我正确发布新分数)
  • 我正在尝试的用户是应用程序的所有者
  • 尝试使用沙箱打开和关闭上述步骤
  • 如果我使用相应的access_token和用户ID 调用https://graph.facebook.com/USER_ID/scores,我会将先前发送的100分得分作为回复,因此得分发布似乎有效

问题是为什么它不会显示在Feed/timeline/ticker中的任何位置.我错过了什么吗?

MrG*_*mez 6

根据文档官方教程,您已正确发布了您的分数.那么,输入我们的下一个问题:为什么它不显示在用户的Ticker或时间线上?

答案是,像" 愤怒的小鸟"这样的游戏发布高分的方式实际上是在分数机制之间混合并直接发布到用户的流.Facebook 控制分数将被发布的故事类型和分布,因此每次您向网站发布分数时,您的应用都无法保证生成新的故事项目.引用主要来源:

Facebook表示获得最多点击次数,喜欢和评论的故事将在News Feed和Timeline上得到更多分发.

幸运的是,如果用户允许,您可以使用.如果您认为您的用户非常关心发布他们的高分,您可以请求允许直接发布到他们的流,并使用您自己的自定义消息.更多信息可以在这里找到.

(附加参考)