在Facebook Graph API中访问好友列表时出现HTTP 400错误

时间:2012-04-18 07:01:50

标签: facebook facebook-graph-api

当我使用网址https://graph.facebook.com/me/friends?access_token=访问我的朋友列表时...我可以看到我朋友的列表。我也可以通过编程方式执行此操作。

现在,当我获取任何朋友的ID并将其替换为上述URL中的“我”,并将URL粘贴到浏览器中时,我可以看到我朋友的朋友。我无法以编程方式执行此操作,因为它给了我一个HTTP 400错误。

是否有人知道为什么通过粘贴网址而不是以编程方式进行此操作?

2 个答案:

答案 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))“;

需要以下要求:

  1. 您的朋友需要使用应用程序。
  2. 来自应用程序read_stream,publish_stream,publish_checkins的权限。