首页 文章

使用firebase Facebook auth提供的访问令牌来访问Facebook API?

提问于
浏览
0

我正在使用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);
            }
        })

1 回答

  • 3

    你有2个选择 .

    • 使用 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 的内容

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

    如果您需要继续使用Facebook API,请使用选项2,因为Firebase在过期后无法管理OAuth令牌 . 如果您只需要登录时使用Facebook数据,请使用选项1 .

相关问题