typescript - react native FaceBook SDK 获取 iOS 令牌返回错误的签名
我正在使用最新的 Facebook SDK react-native-fbsdk-next,我成功让它在安卓上工作,但在 iOS 上不起作用
LoginManager.logInWithPermissions([
'public_profile',
'instagram_basic',
'instagram_manage_insights',
'pages_show_list',
'ads_management',
'business_management',
'ads_read',
'read_insights',
]).then(
(result: any) => {
if (result.isCancelled) {
console.log('Login cancelled');
} else {
if (Platform.OS === 'ios') {
AuthenticationToken.getAuthenticationTokenIOS().then(
(data: any) => {
console.log(
'after get accress token ',
data?.authenticationToken.toString(),
);
console.log(
'Login success with permissions: ' +
result.grantedPermissions.toString(),
);
//data.accessToken.toString()
dispatch(fetchPages(data?.authenticationToken));
},
);
}
我正在获取一个令牌,但每当我尝试使用它获取页面时,我都会收到签名错误。有建议可能是什么错误吗?我做错了什么。
const manager = new GraphRequestManager();
const igAccountFields =
'instagram_business_account{id,name,username,profile_picture_url},id,username,name,tasks,category,access_token';
const req = new GraphRequest(
'/me/accounts',
{
httpMethod: 'GET',
accessToken: accessToken,
parameters: {
fields: {
string: igAccountFields,
},
},
},
_responseInfoCallback,
);
manager.addRequest(req);
manager.start();```
答案#1
我在使用 Ruby 的 fb_graph2 gem 时遇到了类似的错误,抛出了 Bad signature 错误。
我发现 Facebook 文档中指出 苹果不允许将令牌移动到服务器。 这可以解释为什么它在安卓上可用,但在 iOS 上不可用。
https://developers.facebook.com/docs/facebook-login/guides/access-tokens#portabletokens
所以看起来你应该在客户端获取用户资料,连同令牌一起发送到你的服务器,验证令牌以查看资料是否可靠。
我希望这能帮到你。