Facebook Ads API:错误272此Ads API调用要求用户为admin

时间:2015-11-30 12:07:04

标签: facebook-graph-api facebook-php-sdk facebook-ads-api facebook-marketing-api

我正在使用Facebook Ad Api来制作广告。但是,当我使用以下api调用授予用户管理员角色(1001)时:

https://graph.facebook.com/v2.5/<AD_ACCOUNT_ID>/users?role=1001&uid=xxxxx

它成功创建了用户,当我让所有用户使用以下请求时:

https://graph.facebook.com/v2.5/<AD_ACCOUNT_ID>/users

它成功地将数组返回为:

"{"data":[{"name":"firstname lastname","permissions":[1,2,3,4,5,7],"role":1001,"id":"101xxxxxxxxxx352"}}"

但是当我尝试使用新添加的用户创建广告系列或Adset时,会抛出以下异常:

  

[FacebookAds \ HTTP \异常\ AuthorizationException]
    (#272)此Ads API调用要求用户成为应用程序的管理员。用户16xxxxx351不是应用程序109xxxxxxxx0403的管理员或开发人员。

当我转到我的应用程序并为用户分配管理员或开发人员角色时,我可以成功提出请求。

为什么Facebook不允许使用api创建具有管理员角色的用户而不是对其Ad Api进行api调用?为什么在授予用户管理员/开发人员角色提出请求时允许?

2 个答案:

答案 0 :(得分:0)

这是因为您可以宣传的对象不是基于广告帐户,而是基于您的用户。

您可以通过发出以下请求来查看用户有权访问的连接对象:

<API_VERSION>/act_<AD_ACCOUNT_ID>/connectionobjects?access_token=<ACCESS_TOKEN>

文档说明:

  

此调用返回当前会话的所有对象的ID   用户是管理员,以及用户所在的应用的ID   列为开发人员或广告商。

答案 1 :(得分:0)

如果您不想为自己的应用设置额外的管理员,可以在Facebook Business Manager中创建系统用户,授予他广告帐户的管理员(甚至是广告客户)权限。

https://developers.facebook.com/docs/marketing-api/business-manager-api

并使用他的令牌来管理广告。就我而言,我使用它来检索广告的定位,以找到潜在客户来自哪里。

https://www.facebook.com/marketingdevelopers/videos/vb.606699326111137/883648801749520/