iOS端FBLoginButton部分Facebook权限未展示给用户的问题咨询
出现这种差异的核心原因通常和应用权限审核状态、账号已授权记录以及权限的受众限制有关,以下是具体排查点:
1. 高级权限未通过应用审核
你请求的pages_show_list、instagram_basic、pages_read_engagement、business_management、instagram_manage_insights都属于Facebook的高级权限,这类权限需要通过Facebook的应用审核后,才能对普通个人账号开放授权入口。
- 测试账号属于应用的「测试人员/开发者」列表,不受审核限制,所以能正常看到所有权限请求;
- 你和同事的个人账号是普通用户,在应用未通过对应权限审核的情况下,Facebook会自动隐藏这些未审核通过的权限,不会展示给用户授权。
解决方法:
登录Facebook开发者后台,检查对应权限的审核状态,提交完整的审核申请(包括使用场景说明、功能演示等),待审核通过后,普通用户就能看到这些权限的授权选项。
2. 账号已授权过目标权限
如果你的个人账号之前已经授权过这些权限,Facebook不会重复展示已授权的权限选项,即使设置了button.authType = .rerequest也没用——.rerequest仅针对之前被用户明确拒绝的权限,而非已授权的权限。
验证方法:
打开Facebook的「设置与隐私」→「设置」→「应用和网站」,找到你的应用,查看已授权的权限列表,确认目标权限是否已经存在。如果已授权,若需重新触发授权提示,可以先在该页面移除应用的授权,再重新登录测试。
3. 权限依赖用户资产
部分权限需要用户拥有对应资产才会触发授权提示,比如pages_show_list需要用户至少拥有一个Facebook公共主页,instagram_basic需要用户绑定了Instagram商业账号。如果你的个人账号没有这些资产,Facebook可能不会展示相关权限的授权选项。
验证方法:
检查你的个人账号是否拥有对应资产(Facebook主页、绑定的Instagram商业账号等),若没有,可先创建或绑定后再测试。
内容的提问来源于stack exchange,提问作者georgeapostu

