我在我的应用中使用facebook登录。一旦用户登录,我就可以获得他们的基本Facebook信息,例如显示名称,电子邮件和照片网址。 我想得到他们的facebook好友列表。我想我可以直接得到它#34;与firebase但我不记得我怎么也找不到任何关于它的信息。我想当人们使用facebook登录时,我首先要告诉Firebase获取好友列表,然后我可以使用firebaseAuth.getCurrentUser()。getFriendList()等方法来获取它。
你知道怎么用firebaseAuth获取facebook好友列表吗?
谢谢,
亚历
答案 0 :(得分:3)
通常从Facebook获取用户的所有朋友列表是不可能的,他们在几年前删除了这个选项,使用API v2.0介绍...更多信息和有用的建议HERE
有一个名为图谱API 的官方FB API,HERE你有一些关于好友列表的文档
和 Firebase ......好吧,这是Google的产品,它与Facebook无关......您可能正在使用FB邮件地址在Firebase服务/数据库中创建帐户,但它只保留这些数据加上一些额外的属性(如照片或可见名称)。
firebaseAuth.getCurrentUser()
会返回FirebaseUser
个对象,其中包含THESE个方法 - 就像您看到的那样:logpass,name,photo url以及更多方法。没有获取好友列表的选项,因为没有设置它们的方法,也没有可能从FB lib / API获取此列表
答案 1 :(得分:2)
这是可行的,但只有那些也使用你的应用的朋友。诀窍是为您的登录方法添加范围。在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}
注意我正在使用特定版本,但您应该将其更改为您需要的任何版本。