使用 firebase Facebook 身份验证提供的访问令牌访问 Facebook API?
Use access token provided by firebase Facebook auth to access Facebook API?
我正在使用 firebase 集成的 facebook 登录,它对用户进行身份验证并提供访问令牌。如果我想进一步利用 Facebook API,我可以将访问令牌传递到 javascript sdk 吗?文档中似乎没有执行此操作的方法。
如果不是,我如何向 facebook 发出 HTTP 调用 API,我正在尝试的结果是 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);
}
})
您有 2 个选择。
- 使用
signInWithPopup
登录Facebook获取Facebook访问令牌然后查询FacebookAPI:
AJAX GET 'https://graph.facebook.com/me?access_token=' + result.credential.accessToken
Firebase 还 returns 其他数据:
firebase.auth().signInWithPopup(provider).then(function(result) {...
查看result.additionalUserInfo.profile
的内容
- 使用 Facebook 网络 SDK 登录。获取 Facebook 访问令牌,然后登录到 Firebase:
firebase.auth().signInAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookAccessToken)).then(function(result) {...
如果您需要继续使用 Facebook API,请使用选项 2,因为 Firebase 不会在 OAuth 令牌过期后对其进行管理。
如果您只需要在登录时使用 Facebook 数据,请使用选项 1。
我正在使用 firebase 集成的 facebook 登录,它对用户进行身份验证并提供访问令牌。如果我想进一步利用 Facebook API,我可以将访问令牌传递到 javascript sdk 吗?文档中似乎没有执行此操作的方法。
如果不是,我如何向 facebook 发出 HTTP 调用 API,我正在尝试的结果是 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);
}
})
您有 2 个选择。
- 使用
signInWithPopup
登录Facebook获取Facebook访问令牌然后查询FacebookAPI:
AJAX GET 'https://graph.facebook.com/me?access_token=' + result.credential.accessToken
Firebase 还 returns 其他数据:
firebase.auth().signInWithPopup(provider).then(function(result) {...
查看result.additionalUserInfo.profile
- 使用 Facebook 网络 SDK 登录。获取 Facebook 访问令牌,然后登录到 Firebase:
firebase.auth().signInAndRetrieveDataWithCredential(firebase.auth.FacebookAuthProvider.credential(facebookAccessToken)).then(function(result) {...
如果您需要继续使用 Facebook API,请使用选项 2,因为 Firebase 不会在 OAuth 令牌过期后对其进行管理。 如果您只需要在登录时使用 Facebook 数据,请使用选项 1。