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

如何获取通过Facebook Login for Business登录应用的企业账户ID?

获取Facebook Login for Business客户的Business Manager账户信息

问题背景

我开发了一个集成Facebook Login for Business的应用,认证流程为:先获取授权码,再兑换为System User Access Token(SUAT)。

  • 登录成功返回载荷:
{"authResponse": {"userID": null,"expiresIn": null,"code": "AQA..."},"status": "connected"}
  • 兑换SUAT后的返回载荷:
{"data": {"access_token": "EAAT...","token_type": "bearer"}}

需要用户登录后自动化内部流程,但单个客户可能拥有多个Business Manager,因此需要获取客户的Business Manager账户ID、用户名、邮箱来精准识别登录账户。但调用debug_token端点返回的user_id是我方Business Manager关联的系统用户ID,无法满足需求:

{"data": {"app_id": "1234567890123456","type": "SYSTEM_USER","application": "My App","data_access_expires_at": 0,"expires_at": 0,"is_valid": true,"issued_at": 1234567890,"scopes": ["pages_show_list","public_profile"],"granular_scopes": [{"scope": "pages_show_list"}],"user_id": "123456789012345678"}}

解决方案

1. 补充必要的权限请求

当前授权的scopes仅包含pages_show_list和public_profile,不足以获取Business Manager相关信息。需要在获取授权码的步骤中,新增business_management权限(若需获取邮箱还需email权限)。

2. 调用Graph API获取目标信息

使用兑换得到的SUAT,调用以下Graph API端点:

获取客户关联的所有Business Manager账户

调用/me/businesses端点,返回结果包含每个BM的ID、名称等关键信息:

{
  "data": [
    {
      "name": "客户的Business Manager名称",
      "id": "1234567890" // 这就是需要的Business Manager账户ID
    }
  ]
}

获取系统用户的用户名、邮箱

调用/me?fields=name,email端点,返回系统用户的基础信息:

{
  "name": "系统用户名称",
  "email": "user@example.com",
  "id": "系统用户ID"
}

注意事项

  • 确保你的应用已在Facebook开发者平台中获得business_management权限的审核通过,否则无法获取相关数据。
  • SUAT的权限范围由授权时请求的scopes决定,必须在用户授权阶段明确申请所需权限。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 08:28:36