51

我正在尝试获取登录到我的应用程序的用户的所有朋友。

我不能使用这个 API [朋友]:

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。

4

1 回答 1

85

在 Graph API 的 v2.0 中,调用/me/friends会返回该人也使用该应用程序的朋友。

此外,在 v2.0 中,您必须向user_friends每个用户请求权限。user_friends不再默认包含在每次登录中。每个用户必须授予user_friends权限才能出现在对 的响应中/me/friends。有关更多详细信息,请参阅Facebook 升级指南,或查看下面的摘要。

/me/friendlists端点和user_friendlists权限不是您所追求的。此端点不会返回用户朋友 - 它允许您访问一个人为组织他们的朋友而创建的列表。它不会返回每个列表中的朋友。此 API 和权限非常有用,可让您在让人们有机会发布回 Facebook 时呈现自定义隐私选择器。

如果您想访问不使用应用程序的朋友列表,有两种选择:

  1. 如果您想让您的人在他们使用您的应用程序发布到 Facebook 的故事中标记他们的朋友,您可以使用/me/taggable_friendsAPI。使用此端点需要 Facebook 审核,并且仅应用于您呈现朋友列表以便让用户在帖子中标记他们的情况。

  2. 如果您的应用是游戏并且您的游戏支持 Facebook Canvas,您可以使用/me/invitable_friends端点来呈现自定义邀请对话框,然后将此 API 返回的令牌传递给标准请求对话框。

在其他情况下,应用程序不再能够检索用户朋友的完整列表(只有那些专门授权您的应用程序使用user_friends权限的朋友)。

对于希望允许人们邀请朋友使用应用程序的应用程序,您仍然可以使用Web 上的发送对话框iOSAndroid上的新消息对话框。

于 2014-05-29T05:43:54.720 回答