3

我正在使用 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"}}"

但是当我尝试使用新添加的用户创建广告活动或广告集时,会引发以下异常:

[FacebookAds\Http\Exception\AuthorizationException]
(#272) 此广告 API 调用要求用户是应用程序的管理员。用户 16xxxxx351 不是应用程序 109xxxxxxxx0403 的管理员或开发人员。

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

为什么 facebook 不允许从 api 以管理员角色创建的用户不对其 Ad Api 进行 api 调用?为什么当用户被授予管理员/开发者角色时它允许提出请求?

4

2 回答 2

0

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

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

并使用他的代币来管理广告。在我的例子中,我用它来检索广告的定位,以找到潜在客户来自哪里。

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

于 2017-06-29T16:56:56.703 回答
0

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

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

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

该文档指出:

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

于 2015-12-01T10:57:48.707 回答