我正在使用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 回答
你有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
的内容firebase.auth().signInAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookAccessToken)).then(function(result) {...
如果您需要继续使用Facebook API,请使用选项2,因为Firebase在过期后无法管理OAuth令牌 . 如果您只需要登录时使用Facebook数据,请使用选项1 .