FirebaseAuth android 获取 Facebook 好友列表

FirebaseAuth android get Facebook friends list

我在我的应用程序中使用 facebook 登录。用户登录后,我可以获得他们的基本 Facebook 信息,例如显示名称、电子邮件和照片 url。 我想得到他们的 facebook 好友列表。我想我可以使用 firebase "directly" 获取它,但我不记得如何获取,也找不到任何相关信息。我想我首先必须告诉 Firebase 在人们使用 facebook 登录时获取好友列表,然后我可以使用 firebaseAuth.getCurrentUser().getFriendList().

等方法获取它

你知道如何使用 firebaseAuth 获取 facebook 好友列表吗?

谢谢,

亚历克斯

通常无法从 Facebook 获取用户的所有好友列表,他们在几年前删除了此选项,API v2.0 介绍...更多信息和有用的建议 HERE

有一个名为 Graph API 的官方 FB API 和 HERE 你有一些关于好友列表的文档

Firebase...嗯,这是 Google 的产品,与 Facebook 无关...您可能正在使用 FB 邮件用于在 Firebase service/database 中创建帐户的地址,但它仅保留此数据以及一些附加属性(如果已设置)(如照片或可见名称)。

firebaseAuth.getCurrentUser() returns FirebaseUser 对象,它有 THESE 方法 - 如您所见:logpass、名称、照片 url 以及其他几种方法.没有获取好友列表的选项,因为没有设置它们的方法,也无法从 FB 获取此列表 lib/API

可行,但仅限于也使用您的应用的朋友。诀窍是为您的登录方法添加一个范围。在 Angular 中看起来像这样

this.afAuth.auth.signInWithPopup(new firebase.auth.FacebookAuthProvider().addScope('user_friends'))

末尾的作用域就是诀窍。然后,您需要至少两个用户是 facebook 上的朋友才能登录。您会注意到弹出窗口有所不同,因为它现在请求用户朋友的许可。

响应将包含一个访问令牌。然后您可以使用该令牌来请求用户的朋友,这些朋友也在使用像这样的 GET 请求的应用程序

https://graph.facebook.com/v2.11/{facebook_uid}/?fields=friends{name,id}&access_token={access_token}

请注意,我使用的是特定版本,但您应该将其更改为您需要的任何版本。