【问题标题】:FirebaseAuth android get Facebook friends listFirebaseAuth android获取Facebook好友列表
【发布时间】:2017-08-06 15:43:29
【问题描述】:

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

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

谢谢,

亚历克斯

【问题讨论】:

    标签: android facebook-graph-api firebase firebase-authentication facebook-friends


    【解决方案1】:

    一般无法从 Facebook 获取用户的所有好友列表,他们在几年前删除了这个选项,引入了 API v2.0...更多信息和有用的建议HERE

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

    还有 Firebase...嗯,这是 Google 的产品,与 Facebook 无关...您可能正在使用 FB 邮件地址在 Firebase 服务/数据库中创建帐户,但它只保留这些数据加上一些附加属性(如照片或可见名称)。

    firebaseAuth.getCurrentUser() 返回FirebaseUser 对象,它有THESE 方法——就像你看到的:logpass、name、photo url 和其他几个方法。没有获取好友列表的选项,因为没有设置好友的方法,也无法从 FB lib/API 获取此列表

    【讨论】:

    • 好的,我刚刚在使用 firebaseAuth 设置的 Facebook 登录中添加了 user_friends facebook 权限。现在,当我尝试登录时,我可以在“facebook 弹出窗口”中看到:“这个应用程序将收到:你的朋友列表”。但我知道我需要 Graph API 才能使用它,例如,我无法通过 FirebaseObject 使用 Firebase 获取它。感谢您的帮助!
    【解决方案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}
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-15
      • 2015-03-16
      • 1970-01-01
      • 2015-08-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多