Мне нужно получить некоторые автоматизированные идеи рекламы с помощью Marketing Api. Для этого я создал системного пользователя через Business Manager и сгенерировал токен доступа системного пользователя с разрешением ads_read.
Затем, используя этот токен, чтобы сделать вызовы API и получить определенную информацию о кампании, с помощью FacebookAds php v2.6 SDK я получаю следующую ошибку:
Uncaught exception 'FacebookAds\Http\Exception\PermissionException'
with message '(#275) Cannot determine the target object for this
request. Currently supported objects include ad account, business
account and associated objects.'
Должно ли мое приложение быть в белом списке или я что-то упустил? Я заметил, что рядом с разрешением «ads_read» была записка с надписью «(ваше приложение должно быть в белом списке)».
Вот пример кода, который я использую
<?php
define('VENDOR_DIR', 'vendor/'); // Path to the Vendor directory
$loader = require VENDOR_DIR.'autoload.php';
use FacebookAds\Api;
use FacebookAds\Object\Campaign;
// Initialize a new Session and instantiate an Api object
Api::init(
'xxxxxxxxxxxxxxxx', // App ID
'xxxxxxxxxxxxxxxxx',
'xxxxxxxxxxxxxxxxxx' // System User Access Token
);
$api = Api::instance();
use FacebookAds\Object\Values\InsightsLevels;
$campaign = new Campaign('xxxxxxxxxxxxx');
$params = array(
'level' => InsightsLevels::CAMPAIGN,
);
$async_job = $campaign->getInsightsAsync(array(), $params);
$async_job->read();
while (!$async_job->isComplete()) {
sleep(1);
$async_job->read();
}
$async_job->getResult();
?>
Похоже, ваше приложение не имеет разрешения ads_read. Здесь вы можете найти более подробную информацию о том, как попросить об этом: https://developers.facebook.com/docs/marketing-api/access
Других решений пока нет …