使用Facebook Graph API获取所有用户朋友 - Android

时间:2014-05-25 00:02:53

标签: android facebook facebook-graph-api-v2.0 facebook-friends

我正在尝试让所有朋友,登录我的应用程序的用户。

我无法使用此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

Followed this answer,我收到了好友列表。

但是当我试图获得好友列表的成员时,我会得到空列表:

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同样的结果。

1 个答案:

答案 0 :(得分:83)

在图谱API的v2.0中,调用/me/friends会返回同时使用该应用的人的朋友。

此外,在v2.0中,您必须向每个用户请求user_friends权限。每次登录时都不再包含user_friends。每个用户都必须授予user_friends权限才能显示在对/me/friends的回复中。有关详细信息,请参阅the Facebook upgrade guide,或查看以下摘要。

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

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

  1. If you want to let your people tag their friends 在使用您的应用发布到Facebook的故事中,您可以使用/me/taggable_friends API。 Use of this endpoint requires review by Facebook并且只应用于呈现朋友列表的情况,以便让用户在帖子中标记这些朋友。

  2. If your App is a Game AND your Game supports Facebook Canvas ,您可以使用/me/invitable_friends端点来呈现a custom invite dialog,然后将此API返回的令牌传递给{{ 3}}

  3. 在其他情况下,应用无法再检索用户朋友的完整列表(仅限那些使用user_friends权限明确授权您的应用的朋友)。

    对于希望允许其他人邀请朋友使用应用的应用,您仍然可以使用the standard Requests Dialog.或新的Send Dialog on WebMessage Dialog on iOS

相关问题