You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

为何有效Facebook长期用户令牌调用指定API时返回OAuthException 200?

Facebook Marketing API 错误排查:API access blocked(OAuthException 200)

针对你遇到的长期用户令牌调用/me/adaccounts/insights接口返回API access blocked(错误码200)的问题,常见原因及解决办法如下:

  • 长期令牌已失效
    长期令牌并非永久有效,通常有效期为60天,到期后会自动失效。用Facebook官方的令牌调试工具检查当前令牌状态,确认是否过期。若已过期,重新生成长期令牌即可,生成时需确保用户处于登录状态,且关联的权限未发生变动。

  • 应用或令牌权限被限制/撤销
    即便用户在Business Manager拥有完全权限,也可能因以下情况被拦截:

    • 应用违反Marketing API使用规则,比如请求过于频繁、存在数据滥用行为
    • 令牌对应的权限被管理员在Business Manager或应用设置中手动撤销
      检查应用的App Review状态,确认ads_readmanage_adaccounts等必要权限仍存在;同时查看开发者后台通知,确认是否有政策违规警告。
  • API版本过于陈旧
    你使用的v23.0版本可能已被Facebook淘汰,过期版本的请求会被直接拦截。切换到当前支持的稳定API版本(比如v19.0及以上,以Facebook最新版本列表为准),更新请求URL中的版本号后重试。

  • 请求IP被封禁
    若服务器IP被Facebook安全系统标记为异常(比如批量请求过于频繁、来自高风险区域),会触发访问拦截。检查应用设置中是否有IP白名单限制,确认当前IP在名单内;或更换测试IP,验证是否能正常发起请求。

  • 关联用户状态异常
    若用户被移除出Business Manager、账号被临时限制,或Facebook账号本身存在异常(比如登录验证未通过),即便为管理员,令牌也会失效。确认用户在Business Manager中的状态,确保仍拥有目标广告账户的完全权限;让用户重新登录Facebook,验证账号状态正常。

另外,调用/insights接口时,time_range参数无需手动用json.dumps处理,直接传入字符串格式的JSON或字典即可,requests会自动完成序列化,避免格式错误:

params = {
    "access_token": access_token,
    "time_range": '{"since":"2025-01-01","until":"2025-09-01"}',
    "level": "ad",
    "fields": "date_start,date_stop,spend,impressions,frequency,cpc,ctr",
    "breakdowns": "country",
    "time_increment": 1
}

内容的提问来源于stack exchange,提问作者Nazar Ponomarenko

火山引擎 最新活动