Facebook Ads API: ошибка 272. Для этого вызова Ads API требуется, чтобы пользователь был администратором

Я использую Facebook Ad Api для создания рекламы. Однако, когда я предоставляю пользователю роль администратора (1001) со следующим вызовом API:

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\Exception\AuthorizationException]
(#272) Этот вызов Ads API требует, чтобы пользователь был администратором приложения. Пользователь 16xxxxx351 не является администратором или разработчиком приложения 109xxxxxxxx0403.

И когда я захожу в свое приложение и назначаю пользователю роль администратора или разработчика, я могу успешно выполнять запросы.

Почему facebook не позволяет пользователю, созданному с ролью администратора из API, не выполнять API-вызовы своего Ad API? И почему это позволяет, когда пользователю предоставлена ​​роль администратора/разработчика, делать запросы?


person Chamindar2002    schedule 30.11.2015    source источник
comment
Я нашел аналогичный вопрос в stackoverflow, но на него не ответил здесь   -  person Chamindar2002    schedule 01.12.2015


Ответы (2)


Это связано с тем, что объекты, которые вы можете продвигать, основаны не на учетной записи adaccount, а на вашем пользователе.

Вы можете увидеть объекты подключения, к которым у пользователя есть доступ, выполнив следующий запрос:

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

В документации указано:

этот вызов возвращает идентификаторы всех объектов, для которых текущий сеанс пользователь является администратором, и идентификаторы приложений, для которых пользователь указан как разработчик или рекламодатель.

person Paul Bain    schedule 01.12.2015
comment
Спасибо за отзыв Павел. Я получаю исключение, когда выполняю вышеуказанный запрос { "error": { "message": "(#10) You do not have sufficient permissions to perform this action", "type": "OAuthException", "code": 10, "fbtrace_id": "BtfLD4Ise1y" } }, как мне правильно назначить действительного пользователя для управления рекламными кампаниями, например, роль 1001? - person Chamindar2002; 03.12.2015

Если вы не хотите создавать дополнительных администраторов для своего приложения, вы можете создать системного пользователя в Facebook Business Manager, предоставить ему права администратора (или даже рекламодателя) для рекламного аккаунта.

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

И используйте его токен для управления рекламой. В моем случае я использовал его для получения таргетинга рекламы, чтобы узнать, откуда приходят лиды в лид-форму.

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

person Charlie4fun    schedule 29.06.2017