facebook - Expo Facebook登录-产生无效令牌
问题描述
我按照文档使用 Facebook 登录 SDK。除了生成的令牌不适用于我们的 API 之外,一切正常。我们的 API 将用户生成的令牌作为标头,以便它可以发出请求。我知道它不起作用的原因是我使用 Facebook 登录,但我们的 API 上没有创建帐户。Facebook 不会让我访问用户的密码(出于显而易见的原因),因此我无法根据 Facebook 提供的信息生成帐户。
我认为答案在于 App Access Tokens。如果有人可以帮助我,我将不胜感激!
代码:
export const logInFB = () => async dispatch => {
const { type, token } = await Expo.Facebook.logInWithReadPermissionsAsync('**Blocking this out**', {
permissions: ['public_profile'],
});
console.log('token');
console.log(token);
if (type === 'success') {
// Get the user's name using Facebook's Graph API
const response = await fetch(
`https://graph.facebook.com/me?access_token=${token}`);
console.log('fb token')
console.log(response);
dispatch(fbLoginToken(token));
Alert.alert(
'Logged in!',
`Hi ${(await response.json()).name}!`,
);
}
}
解决方案
看起来您缺少fields
URL 中的属性。前任:&fields=id,name,email,about,picture
请参考这个例子:https ://snack.expo.io/@bacon/facebook
const response = await fetch(
`https://graph.facebook.com/me?access_token=${token}&fields=id,name,email,about,picture`
);
const responseJSON = JSON.stringify(await response.json());
this.setState({ responseJSON });
推荐阅读
- bash - 在函数之间传递元素。得到阴性结果
- sql-server - 如何使用 parentId 查找 Child 的数量
- node.js - Docker 撰写失败
- python - 第一次迁移到新的 PostgreSQL 数据库。ValueError: int() 以 10 为底的无效文字:''
- asp.net - 如何在asp.net中为sql数据源输入文本'<'和'>'
- java - docker 容器中的 Java 进程在 docker stop 后始终以状态 137 结束
- ios - 从 magento 2.0 REST Api 获取多个产品图像以用于购物车列表 - Swift 4
- javascript - 如果两个布尔值为真但也可以为空或不存在,则返回真
- java - ColumnHideCommand makes the table columns to disappear in NatTable, when all table elements are selected
- dart - 屏幕外列表图块处理