我正在使用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调用?为什么在授予用户管理员/开发人员角色提出请求时允许?
答案 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/