React Native FBSDK已授权权限但返回email为undefined求助
嘿,我明白你现在的困扰——明明已经请求了email权限,却只能拿到用户的id和name,email一直返回undefined。我仔细看了你的代码,发现了几个关键问题,咱们一步步来解决:
核心问题:参数拼写错误
你在创建GraphRequest的时候,把**parameters拼成了prameters**!这个拼写错误会导致你指定的fields参数根本没被Facebook SDK正确识别,所以它只会返回默认的id和name字段,自然拿不到email。
修复后的代码片段
把GraphRequest的参数部分修正,同时建议把fields里的逗号空格去掉(虽然空格不一定会报错,但保持规范更好):
const infoRequest = new GraphRequest( '/me', { accessToken: accessToken, parameters: { fields: { string: 'email,name,first_name,middle_name,last_name' } } // 这里把prameters改成parameters,同时去掉fields里的空格 }, responseInfoCallback );
额外排查建议
如果修正后还是拿不到email,可以检查这几点:
- 用户账号是否绑定邮箱:有些Facebook用户可能用手机号注册,没有绑定邮箱,这种情况下无论怎么请求都拿不到email
- 确认权限是否真的被授予:在
LoginManager.logInWithReadPermissions的成功回调里,打印result.grantedPermissions,确认email在列表里:console.log('已授予权限:', result.grantedPermissions); - Facebook开发者后台设置:确保你的应用在Facebook开发者平台里,已经开启了获取用户邮箱的权限(虽然默认是允许的,但可以去“应用审核”->“权限和功能”里确认
email是可用状态)
这样应该就能解决你的问题啦,试试吧!
内容的提问来源于stack exchange,提问作者Mohsin
相关产品推荐
相关产品推荐

