我正在尝试获取登录到我的应用程序的用户的所有朋友。
我不能使用这个API [friends]:
https://developers.facebook.com/docs/graph-api/reference/v2.0/user/friends
因为这个API只返回任何使用过发出请求的应用程序的朋友。
所以我找到了这个API [friendlist]:
https://developers.facebook.com/docs/graph-api/reference/v2.0/friendlist
跟着这个答案,我得到了好友列表。
但是当我试图获得好友列表的成员时,我得到空列表:
new Request(
session,
"/2692926356774/members",
null,
HttpMethod.GET,
new Request.Callback()
{
public void onCompleted(Response response)
{
/* handle the result */
Log.e(LOG_TAG,"Members: " + response.toString());
}
}
).executeAsync();
2692926356774
是我的Acquaintances list id
,我尝试了一些其他id的相同结果。
在2.0版本的Graph API中,调用/me/friends
将返回同样使用该应用程序的人的朋友。
此外,在v2.0中,必须向每个用户请求user_friends
权限。user_friends
不再默认包含在每次登录中。为了出现在/me/friends
的响应中,每个用户必须授予user_friends
权限。请参阅Facebook升级指南了解更多详细信息,或查看下面的摘要。
/me/friendlists
端点和user_friendlists
权限不是你想要的。这个端点不返回用户的朋友-它允许您访问一个人为组织他们的朋友所做的列表。它不返回每个列表中的好友。这个API和权限是有用的,允许你呈现一个自定义的隐私选择器,让人们有机会发布回Facebook。
如果你想访问一个不使用app的好友列表,有两个选项:
-
如果你想让你的人在他们使用你的App发布到Facebook的故事中标记他们的朋友,你可以使用
/me/taggable_friends
API。使用此端点需要Facebook的审查,并且应该仅用于呈现好友列表以便用户在帖子中标记他们的情况。 -
如果你的应用程序是一个游戏,并且你的游戏支持Facebook Canvas,你可以使用
/me/invitable_friends
端点来呈现自定义邀请对话框,然后将此API返回的令牌传递给标准请求对话框。
在其他情况下,应用程序不再能够检索用户朋友的完整列表(只有那些使用user_friends
权限特别授权你的应用程序的朋友)。
对于希望允许用户邀请好友使用的应用程序,您仍然可以使用Web上的发送对话框或iOS和Android上的新消息对话框。