已获权限仍遇Meta API报错:广告账户所有者未授权ads_management/ads_read
问题:Meta Marketing API 权限验证失败(错误码200)
调用Meta Marketing API获取用户广告账户信息时,触发以下错误:
{'error': {'message': '(#200) Ad account owner has NOT grant ads_management or ads_read permission, refer to https://developers.facebook.com/docs/marketing-api/get-started/authorization/#permissions-and-features for details.', 'type': 'OAuthException', 'code': 200, 'fbtrace_id': 'A2a16Z84D69Ds4NXGGFzN-D'}}
已完成的检查项:
- 用户授权:用户通过"Login with Facebook for Business"流程授予了
ads_management、ads_read及email权限 - 访问令牌权限:经Meta Access Token Debugger验证,令牌包含
email、read_insights、pages_show_list、ads_management、ads_read、business_management、pages_read_engagement、public_profile等权限 - 应用权限:应用已获得
ads_management和ads_read的Advanced Access,public_profile和email为Standard Access - 技术提供商权限:已拥有
ads_management和ads_read的高级访问权限
使用同一令牌在Graph API Explorer中测试,仍出现相同错误。
疑问:为何已具备必要权限仍报错?该如何解决?是否遗漏了其他配置步骤或条件?
排查与解决方案
1. 确认广告账户的访问权限归属
- 检查授权用户是否是目标广告账户的拥有者/管理员,或已被账户拥有者添加为协作人员(需分配至少
广告分析或广告管理级别的权限)。即使用户授权了应用权限,若本身没有该广告账户的访问权限,仍会触发此错误。 - 确认广告账户已关联到用户的商务管理平台(BM),且你的应用已被添加到该BM的应用列表中,同时BM为应用分配了目标广告账户的访问权限。
2. 验证访问令牌的有效性与上下文
- 确保使用的是用户访问令牌而非应用令牌。Marketing API访问用户广告账户必须使用用户令牌,应用令牌无法访问个人广告账户数据。
- 检查令牌的过期时间,即使Debugger显示权限,过期令牌会导致权限校验失败。
- 在Graph API Explorer测试时,确认选择了正确的应用,令牌由该应用生成,且调用的广告账户ID格式正确(需以
act_开头)。
3. 确认权限的生效范围
- 若用户属于多个BM,需确认授权流程中用户选择的是包含目标广告账户的BM。部分权限的生效范围绑定到特定BM,选错BM会导致无法访问目标账户。
- 检查应用状态:若应用处于开发模式,即便获得Advanced Access,也仅能访问开发者自身或测试用户的广告账户。需将目标用户添加为应用测试用户,或完成应用上线审核。
4. 直接验证账户可访问性
- 调用
/me/adaccounts接口,查看当前令牌能访问的广告账户列表。若目标账户不在列表中,说明用户无该账户权限,需联系账户拥有者添加协作权限。 - 让用户清除应用授权缓存后重新授权,确保授权流程中正确勾选了对应BM和广告账户的权限选项。
内容的提问来源于stack exchange,提问作者MercuryProbe
相关产品推荐
相关产品推荐

