我希望通过API调用获得朋友的朋友,当我尝试这样做时,我会遇到以下异常,
{
"error": {
"type": "OAuthException",
"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"
}
}
我尝试访问的网址是
https://graph.facebook.com/friend_id/friends?access_token=access_token
我正在获得扩展权限,如下所示,
<fb:login-button perms="user_likes,friends_likes"></fb:login-button>
任何人都可以告诉我这里出了什么问题吗?或者这是否意味着我永远无法接触朋友的朋友?
答案 0 :(得分:6)
目前,没有扩展权限允许您查看用户的朋友朋友。 “* _likes”权限只显示用户喜欢的Facebook页面。
您可以逐个迭代地获取和缓存每个用户朋友的朋友,但是如果没有每个朋友的访问权限,您将只能获取公共数据。
答案 1 :(得分:3)
我有朋友的朋友(有限)。我有同样的问题。虽然回答问题已经很晚了,但它会对某些人有所帮助。这就是回答这个问题的原因。
我们可以吸引那些应用用户的朋友。 $ fb_id =朋友的朋友需要的用户ID。
$ query =“SELECT uid,name,work_history FROM user WHERE uid IN(SELECT uid2 FROM friend WHERE uid1 IN(SELECT uid FROM user WHERE uid IN (SELECT uid2 FROM friend WHERE uid1 = $ fb_id)and is_app_user = 1))“; $ USER_INFO = $ facebook-&GT; API(阵列( '方法'=&GT; 'fql.query', '查询'=&GT; $查询));
@Olie:
您正在通过申请获取朋友的朋友。因此,您需要获得您想要的朋友的朋友的许可。即您的朋友应该使用该应用程序并接受这些权限,同时允许访问信息。否则你将无法与你朋友的朋友在一起。我测试了这个查询。它运作成功。
"message": "(#604) Can't lookup all friends of .... Can only lookup for the logged in user (...), or friends of the logged in user with the appropriate permission"
这条消息很好地解释了。仔细阅读。
希望您了解解决方案标准。
答案 2 :(得分:1)
您无法获取朋友的朋友,由于隐私问题,我们不允许这样做。
我们之前做过的解决方法是将所有用户朋友保存到自己的数据库中。 这样我们就可以交叉引用所有不同用户的朋友列表,至少得到使用我们制作的应用程序的朋友的朋友。
重要说明,根据您获得的用户数量,此类表格会迅速增加。
依靠每个平均有大约250-300位朋友的用户,所以如果你选择这样的解决方案,请确保为它优化你的数据库,然后它应该工作得很好。
答案 3 :(得分:0)
遇到同样的问题,不得不使用旧的REST API来获得至少共同的朋友,请参阅 http://developers.facebook.com/docs/reference/rest/friends.getMutualFriends/
答案 4 :(得分:-1)
您可以通过Graph API调用给我/朋友来获取当前用户的朋友。您将需要任何有效的access_token,没有特殊的扩展权限,只需要基本的权限。有一点需要注意,用户必须允许您查看他们的朋友列表。那么在隐私设置&gt;在Facebook上连接有一个“查看您的朋友列表”设置。如果用户选择了自定义设置并选择了“仅限我”,则会出现此错误。
同样,如果当前用户允许其他人查看他们的朋友列表,但其中一位朋友因隐私问题而将其关闭,那么您将无法看到任何数据并将收到该错误。
我能够验证我所描述的情景。
答案 5 :(得分:-3)
不幸的是,由于我没有使用FB API的经验,所以我不能特别问你的答案。但是,我相信FB允许用户隐藏他们的朋友。如果他们有这套,那么也许你根本无法访问他们的朋友。我会尝试修改您的代码,首先检查给定用户的权限,然后只有访问他们的朋友列表才能访问它们。不过,这里有点猜测。