Facebook Login For Business OAuth流返回user_denied错误求助
问题描述
我们基于Facebook Login for Business创建了一款新应用,当前处于Dev/Sandbox模式,企业已完成验证并按需申请到了高级权限。但测试OAuth流程时,回调URL始终返回如下错误:
error=access_denied&error_code=200&error_description=Permissions+error&error_reason=user_denied#_=_
测试用户为应用管理员,使用的登录URL如下:
https://www.facebook.com/v17.0/dialog/oauth?client_id=xxxxxxxxxxxxxxx&redirect_uri=https://example.com/callback&config_id=xxxxxxxxxxxx&response_type=code
Facebook登录流程的最终页面显示正常,但无论是使用SDK的FB.login()方法还是手动构造的登录URL,都出现相同问题,怀疑是Facebook Login for Business的新版本存在问题,求排查思路。
排查建议
- 检查Sandbox模式下的测试用户配置:即使是App Admin,在Sandbox模式下也需要确保该用户被添加到应用的测试用户列表中。进入Facebook开发者后台的应用设置,找到「测试用户」板块,确认当前测试账号已被添加且状态正常。
- 验证权限申请与审批状态:进入「应用审核」>「权限与功能」页面,检查每个申请的权限状态是否为「已批准」,避免存在未通过的权限导致流程中断。
- 核对Login for Business配置ID与回调URL:确认URL中的
config_id是否匹配后台创建的Login for Business配置ID,同时检查该配置的回调URL是否和当前使用的redirect_uri完全一致(包括HTTP/HTTPS、域名、路径,不能有任何差异)。 - 添加明确的权限请求范围:当前登录URL未指定
scope参数,尝试在URL中添加基础权限(比如scope=email,public_profile),测试是否能正常获取授权码。 - 查看应用日志:在Facebook开发者后台的「事件管理」>「日志」板块,查找OAuth流程相关的错误日志,获取更详细的拒绝原因。
- 临时测试Live模式:如果条件允许,临时将应用切换到Live模式(确保完成必要验证步骤),测试OAuth流程是否正常,排除Sandbox模式的特殊限制问题。
内容的提问来源于stack exchange,提问作者Yooz
相关产品推荐
相关产品推荐

