业务管理器 owned_business 端点出错:在 v3.3 中弃用 role_based 字段 permitted_role

Error with business manager owned_business endpoint: deprecation of role_based field permitted_role in v3.3

我正在尝试使用 Facebook 业务 API 为第 3 方页面创建子业务经理。

我一直在关注文档,该文档提供了以下示例来说明如何创建子业务经理。

curl \
  -F 'id=<Parent Business Manager Id>' \
  -F 'name=Advertisers child BM' \
  -F 'vertical=OTHER' \ // Specify the Business vertical
  -F 'shared_page_id=<PAGE_ID_FROM_USER>' \  //Optional parameter
  -F 'page_permitted_roles=["ADVERTISER"]' \
  -F 'timezone_id=1' \
  -F 'access_token=<CLIENTS_ACCESS_TOKEN>' \
  -F 'appsecret_proof=<APP_SECRET>' \
  https://graph.facebook.com/<API_VERSION>/<PARENT_BM_Id>/owned_businesses

不幸的是,当我执行此请求时出现以下错误:

(#12) Deprecated role based field in two tier endpoints as of V3.3 is deprecated for versions v3.3 and higher

我假设对应于 v3.3 发行说明中的​​以下内容:

Deprecated the role_based field permitted_role in Business Manager API. The following endpoint is impacted: POST {business-id}/owned_businesses.

看到之后,我认为最好的办法就是从我的请求中删除 page_permitted_roles。不幸的是,这导致了以下错误:

The parameter page_permitted_roles or page_permitted_tasks is required when sharing page access

我认为 ADVERTISER 可能已从 page_permitted_roles 中弃用,所以我尝试使用 ADMIN,这导致了以下错误:

Param page_permitted_roles[0] must be one of {MANAGER, CONTENT_CREATOR, MODERATOR, ADVERTISER, INSIGHTS_ANALYST}

这.....让我们回到起点。

我相当确定我使用的是正确的 access_token、appsecret_proof 等,但我想我可能不是。不过,我使用的是来自具有 business_manager 范围的登录请求的访问令牌,我认为这是正确的。

如果有人对此有任何见解,将不胜感激!

嗯...这个问题的答案有点虎头蛇尾。今天早上我用新的头脑尝试时,我自己弄明白了。

这一行是提示:

The parameter page_permitted_roles or page_permitted_tasks is required when sharing page access

原来使用page_permitted_tasks解决了问题。我现在正在使用

-F 'page_permitted_tasks=["ADVERTISE"]' \

没有给我任何错误。