FirebaseAuth 在 Android 上如何获取 Facebook 好友列表。

7
我在我的应用程序中使用Facebook登录功能。一旦用户登录成功,我可以获取他们的基本Facebook信息,例如显示名称、电子邮件和照片网址。
我想获取他们的Facebook好友列表。我认为我可以通过Firebase“直接”获取,但我不记得如何操作,也找不到任何相关信息。我认为我首先需要告诉Firebase在人们使用Facebook登录时获取好友列表,然后我应该能够使用firebaseAuth.getCurrentUser().getFriendList()等方法获取好友列表。
您知道如何使用firebaseAuth获取Facebook好友列表吗?
谢谢,
Alex
2个回答

7

这是可行的,但只限于那些使用你的应用的朋友。诀窍在于向你的登录方法添加一个作用域。在 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}

注意:我使用的是特定版本,但你应该根据自己的需要更改版本。


3

一般来说,从Facebook获取用户所有好友列表是不可能的,他们在几年前就删除了这个选项,随着API v2.0的介绍... 更多信息和有用建议 在这里

有一个官方的FB API叫做图形API在这里你可以找到一些关于好友列表的文档。

至于Firebase ... 好吧,这是Google的产品,与Facebook没有任何关系... 您可能正在使用FB邮件地址创建Firebase服务/数据库的帐户,但它只保留此数据以及一些其他属性(如果设置了,如照片或可见名称)。

firebaseAuth.getCurrentUser()返回FirebaseUser对象,其中包含这些方法 - 如您所见:logpass、name、photo url以及仅少数更多的方法。没有获取好友列表的选项,因为没有方法来设置它们,也没有可能从FB lib/API中获取此列表。


1
好的,我刚刚在我的FirebaseAuth的Facebook登录设置中添加了user_friends Facebook权限。现在当我尝试登录时,我可以在“Facebook弹出窗口”中读到:“此应用程序将接收:您的朋友列表”。但是我知道我需要使用Graph API才能使用它,我不能通过FirebaseObject获取它。谢谢你的帮助! - Alex9494

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接