当我使用网址https://graph.facebook.com/me/friends?access_token=访问我的朋友列表时...我可以看到我朋友的列表。我也可以通过编程方式执行此操作。
现在,当我获取任何朋友的ID并将其替换为上述URL中的“我”,并将URL粘贴到浏览器中时,我可以看到我朋友的朋友。我无法以编程方式执行此操作,因为它给了我一个HTTP 400错误。
是否有人知道为什么通过粘贴网址而不是以编程方式进行此操作?
答案 0 :(得分:3)
你无法使用facebook api获得“朋友的朋友”。
例如,使用Graph API Explorer尝试简单的/me/friends,它应该可以正常工作。 然后,在那里拿一个ID并尝试与FRIEND_ID /朋友一样,你应该得到这个:
{
"error": {
"message": "(#604) Can't lookup all friends of FRIEN_ID. Can only lookup for the logged in user or the logged in user's friends that are users of your app.",
"type": "OAuthException",
"code": 604
}
}
错误本身非常直接,并准确解释了问题所在。 至于为什么转换成400错误代码的原因尚不清楚。
你也无法在浏览器中看到“朋友的朋友”,它适合你(可能)的原因是你检查朋友的用户(USER_ID /朋友)安装了应用程序访问令牌属于,从您到达该URL的方式我假设该应用程序是“Test_console”。
如何检查?从URL(USER_ID / friends?access_token = xxxxx)复制访问令牌,转到Facebook Debugger并在文本字段中粘贴令牌,然后单击“调试”,它将显示有关应用程序的信息。
您检查过的用户可能已安装该应用,如果您检查其他用户,当您找到未安装该应用的用户时,您将收到该错误。
我希望这能为你澄清一下。
答案 1 :(得分:0)
我收到了正在使用应用程序的朋友(有限)的朋友。我有同样的问题。虽然回答问题已经很晚了,但它会对某些人有所帮助。这就是回答这个问题的原因。
我们可以吸引那些应用用户的朋友。
$ fb_id =朋友的朋友需要的用户ID。
试试这个fql查询。
$ 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))“;
需要以下要求: