Facebook好友请求返回空 - 尽管权限

时间:2016-11-21 20:35:54

标签: facebook facebook-graph-api facebook-graph-api-v2.7

我正在为iOS应用构建Rails后端。后端需要与Facebook连接以获取和使用每个用户的Facebook好友。

但Facebook'朋友'的要求是空的。

我基本上是在提出以下要求:

curl https://graph.facebook.com/[FILTERED_USER_ID_FOR_APP]?fields=friends&access_token=[FILTERED]&debug=all

我已经查看了大量有关此问题的StackOverflow帖子(this onethis onethis one等等,但未找到相同的问题或适合的解决方案。

我似乎已正确设置权限。在Rails应用程序和用户通过iPhone应用程序进行身份验证时,我已将user_friends设置为权限之一,事实上,当有人注册时,它会要求他们确定用户朋友的权限。

但是当我真正请求他们的朋友时,我得到一个回复​​,告诉我那里 很多朋友,但没有回复任何朋友。以下回复适用于肯定在应用上有朋友的用户。

{
  "data":[],
  "summary": {
    "total_count": 419 
  },
  "__debug__": {
    "messages": [
       { 
        "link": "https:\/\/developers.facebook.com\/docs\/apps\/versions\/", 
        "message": "No API version was specified. This request defaulted to version v2.7.","type":"warning"
       },        
       {
         "link": "https:\/\/developers.facebook.com\/docs\/apps\/changelog#v2_0",
         "message": "Only friends who installed this app are returned in API v2.0 and higher. total_count in summary represents the total number of friends, including those who haven't installed the app.",
         "type": "info"
       }
     ]
   }
 }

令我感到困惑的是 a)应用ID /用户ID /访问权限似乎是正确的,因为我可以获得基本的个人资料信息, b)我做的 not 收到错误,告诉我该请求没有适当的权限。如果我在the explorer上发出没有权限的类似请求,则会返回相关的调试说明:

  {
    "message": "The field 'friends' is only accessible on the User object after the user grants the 'user_friends' permission.",
    "type": "warning"
  }

如果我使用在资源管理器中使用正确的权限,它会返回一个朋友列表(在data数组中)。

所以它似乎是一个权限问题,但请求返回一个空的好友列表。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

在Igy的帮助下(指向this answer),我找到了我的问题的具体答案,这似乎值得补充。

问题是新的2.0+ API版本只返回朋友:

  1. 谁在使用应用
  2. 谁已同意user_friends权限。
  3. 1全都搞清楚了,但因为我还在测试应用程序,而且还没有人接受权限,我的测试用户是唯一接受权限的人。没有人接受user_friends,所以没有人出现在测试用户的朋友面前。让测试用户的朋友添加权限修复了问题,将该朋友添加到返回的朋友列表中。