【问题标题】:Get ALL User Friends Using Facebook Graph API - Android [duplicate]使用 Facebook Graph API 获取所有用户朋友 - Android [重复]
【发布时间】:2023-03-15 06:04:01
【问题描述】:

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

我无法使用此 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 的结果相同。

【问题讨论】:

  • 你应该阅读developers.facebook.com/docs/graph-api/reference/v2.0/…。顶部有一个很大的警告,说它不存在 v2.0。 v2.0无法全部好友
  • 警告涉及 API v1。无论如何,还有什么选择?
  • 这取决于你想做什么。我们添加了 taggable_friends、invitable_friends 和社交上下文 API。因此,如果您想做这些 API 提供的功能,那么您应该使用它们。如果您想做其他需要所有朋友都做不到的事情
  • 登录API变更申请:change.org/petitions/…
  • @WizKid 如果 /{friend-list-id}/members 不会返回任何数据,为什么它仍然可用,为什么没有明确指定这个东西?人们会浪费大量时间试图让它发挥作用。

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


【解决方案1】:

在 v2.0 的 Graph API 中,调用 /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返回的令牌传递给the standard Requests Dialog.

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

对于希望允许人们邀请朋友使用应用的应用,您仍然可以使用Send Dialog on Web 或新的Message Dialog on iOSAndroid

【讨论】:

  • 然后是获取用户的整个朋友列表的任何其他选项......
  • 我想使用 graph API v2.0 获取我所有的 facebook 好友视频?我可以使用 v1.0 完成此操作
  • 我正在使用消息对话框来邀请朋友。交易成功后我得到了交易ID,但消息或文本没有发布在朋友的个人资料或墙上!我正在使用 v2.2 任何 ida?
  • 从 2.0 开始,这通过公共 API 是不可能的。如果你真的需要这个,你唯一的解决办法就是像 FLT 一样获取用户的 Master Token。检索主令牌并不难实现,但这需要用户的登录凭据。通常,没有人会信任使用您 Facebook 密码的软件。此外,检索主令牌将从您的服务器注册登录会话,因此用户将看到“您的帐户是从...访问”消息,并且很可能他们的帐户将被锁定,他们将需要保存浏览器。这违反了 Facebook 服务条款!!!!!!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-03
  • 1970-01-01
  • 1970-01-01
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多