【问题标题】:FaceBook scores api gives score for only one userFaceBook score api 只为一位用户提供分数
【发布时间】:2014-08-24 10:55:57
【问题描述】:

我正在尝试在 unity3d 中为 android 平台构建 facebook 排行榜。 我已经看到了分数的 facebook api。我一直在使用朋友粉碎示例。 我可以使用以下方法成功发布分数:

        var query = new Dictionary<string, string>();
        query["score"] = Instance.score.ToString();
        FB.API("/me/scores", Facebook.HttpMethod.POST, delegate(FBResult r) { Util.Log("Result: " + r.Text); }, query);

我还可以通过以下方式成功请求分数: FB.API("/app/scores?fields=score,user.limit(20)", Facebook.HttpMethod.GET, ScoresCallback);

但问题是我只获得了一个用户(登录的用户)的分数。 我想要一种方法来获取所有玩同一游戏的 facebook 朋友的分数。(我认为我们可以限制为 20)。

如何做到这一点?

P.S : 我也尝试过使用 app42 平台 api,但结果相同。

【问题讨论】:

    标签: facebook facebook-graph-api unity3d facebook-unity-sdk


    【解决方案1】:

    您的应用需要 user_friends 权限才能执行此操作。 用于调试:https://developers.facebook.com/tools/explorer/

    【讨论】:

      【解决方案2】:

      我知道这是一个老问题,但这可能对其他人有帮助。

      当您在使用 Facebook 帐户登录的 Unity 编辑器中玩游戏时,您的分数会被保存。但是任何其他登录的用户都不会保存分数,因为所需的权限不存在。 Scores API 的documentation 表示:

      您可以通过发出 HTTP POST 请求来发布玩家的分数 /USER_ID/scores 与用户 access_token 只要玩家有 为您的应用授予了 publish_actions 权限。

      您可以通过两种方式进行测试。

      如果您在 Facebook 控制台中为您的游戏创建测试用户(角色 -> 测试用户),您可以使用它们来验证您的代码是否有效。创建至少两个测试用户,并在控制台中让他们成为朋友。获取其中一个的用户令牌,然后在 Unity 编辑器中使用该令牌登录您的游戏。玩游戏,保存分数,然后对其他测试用户执行相同操作。

      然后您应该会在您的游戏中看到两个测试用户的分数。

      另外,this answer 列出了另一种获取具有测试用户权限的测试用户令牌的方法。

      要在 Facebook 上使用真实用户帐户,您需要在 Facebook 控制台中为您的游戏请求 publish_actions 权限。 (状态和评论)。

      【讨论】:

        【解决方案3】:

        我遇到了同样的问题。我为该应用添加了一个新用户,但看不到他的分数。事实证明,问题只是 Facebook 服务器的延迟。我等了半个小时,它就自动开始工作了。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-04-11
          相关资源
          最近更新 更多