0

这是我的第一篇文章,我快崩溃了!我已经尝试解决这个问题两天了,我不确定我做错了什么,而且我在任何地方都找不到答案。

我正在编写一个 facebook 游戏,并希望为其用户存储“分数”。有点简单,我想。为此,我有两个用户帐户正在播放该应用程序。到目前为止,我能够获取和发布登录用户的分数。但是我找不到获取他朋友分数的方法。在 Facebook 开发描述中,它声明(“uid/scores”)请求应该返回来自用户及其朋友的分数,但它没有。还尝试“friend-ID/scores”以及“friend-ID?field=scores”不会返回任何内容:

{
  "data": [
  ]
}

我尝试了几乎所有应用权限组合,在 Graph-API-explorer 中使用 app_token 和 access_token 请求、用户 ID 和应用 ID 的狂野组合四处寻找,但没有任何结果。返回的数据始终为空。

我究竟做错了什么?我的应用程序需要什么权限才能获取我的朋友对我的应用程序(游戏)的分数?是因为游戏仍在开发中/尚未获批吗?我必须发送什么图形命令?有没有人成功获得朋友分数?

提前致谢!:-)

4

2 回答 2

1

https://developers.facebook.com/docs/reference/api/user/上的文档指出,实际上 /scores 会返回用户的分数,假设他们授予您 user_games_activity 权限。

您只需要一个用户访问令牌,它应该返回如下内容:

{
  "data": [
    {
      "user": {
        "name": "James Pearce", 
        "id": "738229837"
      }, 
      "score": 20, 
      "application": {
        "name": "Bubble Safari", 
        "namespace": "bubblesafari", 
        "id": "164731003644283"
      }
    },
    ...

它本身不会返回用户朋友的分数:要获得它,您需要单独调用 /[friend_id]/scores(假设第一个用户已授予您 friends_games_activity)。

假设您拥有正确的权限(使用 /me/permissions 检查),一个空数组意味着朋友要么没有分数,要么选择不分享它们。

无法检索应用程序所有用户的分数列表,即使使用应用程序访问令牌也是如此。

于 2012-10-30T18:53:21.267 回答
0

您可以向“APP_ID/scores”发出请求,它将返回当前用户的分数和他朋友的分数

(result:, [data: (
        {
        application =         {
            id = APP_ID;
            name = APP_NAME;
            namespace = APP_NAMESPACE;
        };
        score = 639;
        user =         {
            id = USERID of user A;
            name = "User A";
        };
    },
        {
        application =         {
            id = APP_ID;
            name = APP_NAME;
            namespace = APP_NAMESPACE;
        };
        score = 205;
        user =         {
            id = USERID of user B;
            name = "User B";
        };
    },
        {
        application =         {
            id = APP_ID;
            name = APP_NAME;
            namespace = APP_NAMESPACE;
        };
        score = 100;
        user =         {
            id = USERID of user C;
            name = "User C";
        };
    }
)])
于 2015-04-19T10:32:01.813 回答