【问题标题】:Use access token provided by firebase Facebook auth to access Facebook API?使用 firebase Facebook auth 提供的访问令牌访问 Facebook API?
【发布时间】:2017-10-04 18:45:55
【问题描述】:

我正在使用 firebase 集成的 facebook 登录,它对用户进行身份验证并提供访问令牌。如果我想进一步利用 Facebook API,我可以将访问令牌传递到 javascript sdk 吗?文档中似乎没有办法做到这一点。

如果不是,我如何对 facebook API 进行 HTTP 调用,我正在尝试的操作会导致 400 错误请求 OAuthException

        var url = 'https://graph.facebook.com/userId';

        var data = {
            client_id: myAppId,
            access_token: accessTokenFromFirebaseFacebookAuth
        };

        $.ajax({
            url: url,
            dataType: 'json',
            data: data,
            success: function(data, status) {
                console.log(data);
            },
            error: function(data, e1, e2) {
                console.log(data);
            }
        })

【问题讨论】:

    标签: firebase facebook-graph-api firebase-authentication facebook-javascript-sdk


    【解决方案1】:

    你有两个选择。

    1. 使用signInWithPopup登录Facebook并获取Facebook访问令牌,然后查询Facebook API:

    AJAX GET 'https://graph.facebook.com/me?access_token=' + result.credential.accessToken

    Firebase 还会返回其他数据: firebase.auth().signInWithPopup(provider).then(function(result) {...

    查看result.additionalUserInfo.profile的内容

    1. 使用 Facebook Web SDK 登录。获取 Facebook 访问令牌,然后登录 Firebase: firebase.auth().signInAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookAccessToken)).then(function(result) {...

    如果您需要持续使用 Facebook API,请使用选项 2,因为 Firebase 不会在 OAuth 令牌过期后对其进行管理。 如果您在登录时只需要 Facebook 数据,请使用选项 1。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-10
      • 1970-01-01
      • 2012-06-02
      • 2012-01-02
      • 2012-04-22
      相关资源
      最近更新 更多