FB.login针对不同账号弹出不同布局窗口且未正常申请权限的问题
可能触发该差异的原因及排查方向如下:
- 应用未上线/处于开发模式
未正式发布的Facebook应用,只有后台添加的管理员、开发者、测试用户可以申请高级权限。如果同事的账号没被加入应用的角色列表,Facebook会自动过滤你在scope里填写的所有高级权限,只保留最基础的公开信息权限,同时弹窗样式也会切换为普通用户访问未上线应用的版本。 - 使用的高级权限未通过官方审核
你代码里配置的pages_read_engagement、pages_manage_posts、instagram_basic都属于需要提交申请、通过Facebook官方审核才能对外开放的高级权限。没有过审的权限只对应用内部角色生效,普通用户发起授权时这些权限会被直接剔除,不会出现在授权弹窗里。 auth_type: 'rerequest'参数使用场景不符rerequest参数只适用于用户之前已经明确拒绝过对应权限的二次申请场景,如果同事是第一次使用你的应用,携带这个参数反而会导致权限申请请求被Facebook拦截,没法正常加载完整的权限申请列表。- 账号适用的合规政策不同
不同注册地区、不同年龄/身份信息的账号受当地数据合规政策(比如GDPR、各地区的年龄限制规则等)约束,Facebook会展示不同样式的授权弹窗,同时可能会限制部分权限的申请入口。
排查步骤:
- 打开Facebook开发者后台的应用管理页,把同事的账号添加为测试用户,再测试授权流程是否正常
- 进入「应用审核」板块,确认所有用到的高级权限都已经通过官方审核
- 临时删掉
FB.login配置里的auth_type: 'rerequest'参数,测试首次授权场景是否正常 - 确认两个测试账号的注册地区、账号状态完全一致,排除合规政策的影响
内容的提问来源于stack exchange,提问作者Abraham Brookes
相关产品推荐
相关产品推荐

