【问题标题】:Getting data from Facebook API React从 Facebook API React 获取数据
【发布时间】:2020-04-24 20:45:16
【问题描述】:

我不知道如何从 Facebook API 获取有关用户的数据。 到目前为止,我写了这样的东西:

export const signInFacebook = () =>{
    return (dispatch, getState) => {
        var provider = new firebase.auth.FacebookAuthProvider();
        provider.addScope('user_hometown');
        firebase.auth().languageCode = 'pl_PL';

        firebase.auth().signInWithPopup(provider).then(function(result) {
            console.log(result)

        })
    }
}

并得到回应:

现在我不知道如何获得这个 user_hometown 信息,例如...

【问题讨论】:

  • addScope 添加权限。不是您想要返回的字段
  • 好的。你能告诉我如何获得这些字段,或者给一些 maunal 如何做到这一点,因为我在互联网上找不到好的信息:v ..

标签: reactjs firebase facebook api


【解决方案1】:

从用户那里检索到的所有数据都可以在 .then 承诺中返回的“结果”响应中找到。结果是从成功登录返回的整个对象,也就是您在控制台记录的对象。

要访问您想要的数据,您需要查看结果对象的层次结构/路径。然后,您可以做的是将数据存储在键值对中的变量或常量中,您可以在代码的其他区域检索和使用这些数据。下面我提供了一些可从您的结果中检索的示例值。有什么不清楚的地方吗?

export const signInFacebook = () =>{
return (dispatch, getState) => {
    var provider = new firebase.auth.FacebookAuthProvider();
    provider.addScope('user_hometown');
    firebase.auth().languageCode = 'pl_PL';

    firebase.auth().signInWithPopup(provider).then(function(result) {
        const userData = {
            name: result.user.displayName,
            email: result.user.email,
            image: result.user.photoURL,
            birthday: result.additionalUserInfo.profile.birthday
        };
        console.log(result);

    })
}
}

【讨论】:

  • 我都明白。我知道如何在结果对象中找到这些基本信息。但我不知道在哪里可以找到使用 addScope() 函数添加的信息。例如这个'user_hometown',因为我在additionalUserInfo 对象中看不到它...
  • 我相信这篇文章与您的问题有关:stackoverflow.com/questions/39218093/…。 Firebase API 似乎无法访问您要查找的实际数据。相反,您必须使用从 Facebook 登录返回的访问令牌来查询 Facebook Graph API 并检索您想要的数据。
猜你喜欢
  • 1970-01-01
  • 2021-09-27
  • 2020-03-30
  • 2018-08-16
  • 1970-01-01
  • 1970-01-01
  • 2021-09-26
  • 2021-12-23
  • 1970-01-01
相关资源
最近更新 更多