You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Facebook Business On Behalf Of API获取系统用户ID返回空JSON

问题排查与解决方案

1. 补全必要权限:确保客户端系统用户令牌包含business_management权限

你提到客户端BM系统用户令牌仅拥有ads_management和pages_read_engagement,但调用/me获取系统用户ID必须依赖business_management权限。你自身的令牌能正常返回结果,核心原因大概率是你的令牌包含该权限,而客户端的令牌缺失。

  • 重新生成客户端系统用户令牌时,务必明确请求business_management权限;
  • 用Access Token Debugger验证令牌的「Scopes」字段,确认该权限已包含在内。

2. 确认应用在客户端BM的合作权限等级

即便已创建BM合作关系,也需确保你的应用被授予了访问客户端系统用户的足够权限:

  • 登录客户端的商务管理平台,进入设置 > 第三方应用;
  • 找到你的应用,检查其角色权限是否包含「管理系统用户」或「查看系统用户」;
  • 若权限不足,将应用角色调整为「商务管理员」,或单独授予系统用户的查看/管理权限。

3. 验证令牌的主体关联正确性

用Access Token Debugger查看客户端令牌的关键字段:

  • User ID:确认该值确实是客户端BM下的系统用户ID;
  • Business ID:确认令牌关联的是客户端的BM,而非你自身的BM;
    如果这两个字段匹配预期,说明令牌主体没问题,问题出在权限或BM配置环节。

4. 换用BM端点自动化获取系统用户ID

如果/me端点始终返回空,可以通过以下方式绕开限制实现自动化:
调用GET /v19.0/{client_business_id}/system_users接口,带上拥有business_management权限的应用令牌,可直接列出客户端BM下的所有系统用户,从中提取目标ID。
示例请求:

curl --location 'https://graph.facebook.com/v19.0/{client_business_id}/system_users?access_token=YOUR_APP_ACCESS_TOKEN'

5. 检查应用的开发模式限制

如果你的应用处于开发模式,需确保客户端BM已被添加为应用的测试业务:

  • 进入应用后台的商务管理平台 > 测试业务;
  • 将客户端的BM添加到测试列表,否则开发模式下应用无法访问非测试的BM资源。

内容的提问来源于stack exchange,提问作者Francisco Castro

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.26 06:52:50