我正在为iOS应用构建Rails后端。后端需要与Facebook连接以获取和使用每个用户的Facebook好友。
但Facebook'朋友'的要求是空的。
我基本上是在提出以下要求:
curl https://graph.facebook.com/[FILTERED_USER_ID_FOR_APP]?fields=friends&access_token=[FILTERED]&debug=all
我已经查看了大量有关此问题的StackOverflow帖子(this one,this one和this 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
数组中)。
所以它不似乎是一个权限问题,但请求返回一个空的好友列表。有什么想法吗?
答案 0 :(得分:5)
在Igy的帮助下(指向this answer),我找到了我的问题的具体答案,这似乎值得补充。
问题是新的2.0+ API版本只返回朋友:
user_friends
权限。 1全都搞清楚了,但因为我还在测试应用程序,而且还没有人接受权限,我的测试用户是唯一接受权限的人。没有人接受user_friends
,所以没有人出现在测试用户的朋友面前。让测试用户的朋友添加权限修复了问题,将该朋友添加到返回的朋友列表中。