使用On Behalf Of流程时系统用户未在客户商务管理平台创建及权限问题
解决Facebook On Behalf Of流程中的权限与系统用户问题
一、如何在客户商务管理平台(BM)下创建系统用户
调用<CLIENT_BM_ID>/access_token接口的作用是获取代表客户BM操作的访问令牌,并不会自动在客户BM中创建系统用户。正确的创建流程如下:
- 确保合作方BM的管理员系统用户,已被客户BM授予
Business Manager Admin权限(而非仅资产权限) - 调用
/<CLIENT_BM_ID>/system_users接口,传入合作方BM管理员系统用户的访问令牌,参数需指定name(系统用户名)、role(如ADMIN),完成客户BM专属系统用户的创建 - 创建成功后,再调用
<CLIENT_BM_ID>/access_token接口生成对应令牌,此时系统用户才会显示在客户BM的「商务设置-系统用户」列表中
二、解决"Cannot call API for on behalf of user :"权限报错
该报错核心是系统用户未获得对应客户资产的操作权限,按以下步骤修复:
- 校验令牌权限范围:调用
/debug_token接口,传入获取到的page_token,检查scopes是否包含所需权限(如pages_manage_posts、pages_read_engagement),同时确认business字段指向客户BM - 为系统用户分配资产权限:
- 进入客户BM的「商务设置-系统用户」,找到目标系统用户
- 点击「添加资产」,选择对应页面,授予
页面管理员或所需具体权限(如发布内容、读取数据) - 若需批量操作,可调用
/<SYSTEM_USER_ID>/assigned_users或/<PAGE_ID>/roles接口,传入系统用户ID与对应权限参数
- 重新生成并测试令牌:用系统用户令牌调用
/<PAGE_ID>?fields=access_token重新获取page_token,再用新令牌调用目标接口验证权限
三、测试应用额外注意事项
测试应用权限范围受限,需满足:
- 测试应用已关联到合作方BM,且客户BM已将该测试应用添加为「关联应用」
- 测试所用的页面等资产需为测试资产,未正式发布的资产需手动确认权限是否完全开放
内容的提问来源于stack exchange,提问作者Nightwolf
相关产品推荐
相关产品推荐

