业务经理owner_business端点出错:v3.3中弃用了基于角色的字段allowed_role

时间:2019-06-13 06:13:37

标签: facebook facebook-graph-api

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

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

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)从v3.3版开始,不支持在V3.3版本的两层终结点中基于角色的字段

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

  

在Business Manager API中弃用了基于role_field的allowed_role。以下端点受到影响:POST {business-id}/owned_businesses.

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

  

共享页面访问权限时,参数page_permitted_rolespage_permitted_tasks是必需的

我发现ADVERTISER可能已从page_permitted_roles中弃用,因此我尝试使用ADMIN,这导致了以下错误:

  

Param page_permitted_roles [0]必须为{MANAGER,CONTENT_CREATOR,MODERATOR,ADVERTISER,INSIGHTS_ANALYST}之一

哪个.....让我们回到起点。

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

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

1 个答案:

答案 0 :(得分:0)

好吧……答案有点古板。今天早上我尝试换个新的头时,我自己弄清楚了。

这是提示:

  

共享页面访问权限时,参数page_permitted_rolespage_permitted_tasks是必需的

事实证明,使用page_permitted_tasks可解决此问题。我正在使用

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

这不会给我任何错误。