我需要使用 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();
?>