Facebook应用程序:从朋友那里得分

时间:2012-10-30 16:09:23

标签: facebook-graph-api

这是我的第一篇文章,我即将崩溃!我试图将这个问题搞砸了2天,我不确定我做错了什么,我无法在任何地方找到答案。

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

{
  "data": [
  ]
}

我尝试了几乎所有app-permissions的组合,在Graph-API-explorer中使用app_token和access_token请求,user-id和app-id的狂野组合,但没有任何结果。返回的数据始终为空。

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

提前谢谢! : - )

2 个答案:

答案 0 :(得分:1)

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

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

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

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

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

即使使用应用访问令牌,也无法为应用的所有用户检索分数列表。

答案 1 :(得分:0)

您可以向" APP_ID /得分" 发出请求,这将返回当前用户及其朋友的得分

(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";
        };
    }
)])