是否有人通过Facebook Graph API成功访问了用户朋友列表?
我编写了代码,通过Facebook的OAuth API对我网站上的用户进行身份验证。它的作品非常出色;我可以访问公共信息,喜欢,兴趣,活动等。我通过以下URL格式访问这些数据点,我用“uid”替换有效的id(我使用uid代替“me”因为“我”不像宣传的那样工作):
https://graph.facebook.com/uid?access_token= ...
https://graph.facebook.com/uid/likes?access_token= ...
https://graph.facebook.com/uid/interests?access_token= ...
https://graph.facebook.com/uid/activities?access_token= ...
然而,访问朋友根本不起作用。网址,
https://graph.facebook.com/uid/friends?access_token= ...
返回以下错误:
{
"error": {
"type": "OAuthAccessTokenException",
"message": "An access token is required to request this resource."
}
}
Graph API docs上的示例都有效,但在该页面上生成的访问令牌的格式与我的格式不同。我不知道为什么。我按照他们的指示去了一个发球台(让它为其他一切工作!)。
朋友被视为publicly accessible information,我已经仔细检查了我的Facebook帐户权限,因此我认为这不是问题所在。
答案 0 :(得分:7)
如果用户连接到您的应用程序,您可以检索他们的朋友:
$facebook = new Facebook(array(
'appId' => 'xxxxxxxx',
'secret' => 'xxxxxxx',
'cookie' => true,
));
// $session is only != null, when you have the session-cookie, that is set by facebook, after the user logs in
$session = $facebook->getSession();
// you dont get a list of friends, but a list, which contains other friendlists
$friendsLists = $facebook->api('/me/friends');
foreach ($friendsLists as $friends) {
foreach ($friends as $friend) {
// do something with the friend, but you only have id and name
$id = $friend['id'];
$name = $friend['name'];
}
}
但您只能访问朋友的ID和姓名。
答案 1 :(得分:0)
您需要先获取访问令牌。参见:
答案 2 :(得分:0)
你在哪里可以公开访问这些朋友?您链接到州的常见问题解答:
公开信息包括您的姓名,个人资料照片,性别和网络。这些信息使您认识的朋友,家人和其他人更容易与您联系。
我认为该段中没有提到朋友。
答案 3 :(得分:0)
您看到的错误意味着未发送access_token
。这也可能是/me
为您工作的原因。一旦你解决了这个问题,朋友的联系也会出现在你想象的地方。