Facebook Marketing API报OAuthException错误码100缺权限,配置正常仍报错
Facebook Marketing API错误码100(缺失权限)排查与解决
可能的原因
- 令牌绑定的用户对目标广告账户权限不足:应用拥有ads_read权限不代表生成令牌的用户有权限访问你请求的广告账户,账户级别的权限校验优先级高于应用权限校验。
- 令牌scope实际未包含ads_read:Access Token Debugger需要确认返回的
scope字段明确包含ads_read,仅应用后台配置权限不代表生成令牌时申请了对应权限。 - SDK版本过旧导致参数异常:你使用的12.0.1版本SDK已停止官方维护,对字典、列表类型参数的序列化存在已知问题,转义后的参数会触发API的异常权限校验逻辑。
- 请求的字段/拆解维度需要额外权限:你请求的
link_url字段、publisher_platform+platform_position拆解组合,部分场景下需要额外的权限或账户层级满足要求,并非仅ads_read就可以调用。 - API版本已下线:你调用的v12.0版本Marketing API早已超出官方支持周期,废弃版本的权限校验逻辑存在未修复的bug,会误报权限错误。
解决方案
- 核对账户级权限:登录商务管理平台,确认生成令牌的用户对目标广告账户拥有至少分析师及以上角色,没有被临时限制权限。
- 确认令牌scope:在Access Token Debugger中检查令牌的scope列表,确认
ads_read已被包含,若缺失重新走授权流程申请对应权限后生成新令牌。 - 升级SDK并调整参数:将facebook-business SDK升级到最新稳定版,复杂参数如time_range、filtering、breakdowns可先通过
json.dumps()序列化后再传入,避免转义异常。 - 定位异常参数:先移除所有非必要参数,仅请求
campaign_id、spend等基础字段发起调用,确认调用成功后再逐个加回filtering、breakdowns、特殊字段,定位触发权限报错的具体参数后单独处理权限要求。 - 切换到支持的API版本:将请求的API版本替换为当前官方支持的稳定版本,重新生成对应版本的Access Token后重试。
内容的提问来源于stack exchange,提问作者Obdam
相关产品推荐
相关产品推荐

