Facebook 广告 API:ID 为“*****************”的对象不存在,由于缺少权限而无法加载

Facebook ads API : Object with ID '*****************' does not exist, cannot be loaded due to missing permissions

我正在处理 facebook 广告 API (3.2) 但我遇到了一些奇怪的错误。我正在尝试获取 campaigns 以下是我根据文档 Here

为此使用的方法
public function getcampaigns() {
   $adaccount = new AdAccount('331*****10774');
   $campaigns = $adaccount->getCampaigns();
   print_r($campaigns);
}

但是我收到了错误

然后我用 Explorer 和相同的 access_token 尝试这个并且效果很好。

我在 access_token

中授予以下权限
$this->permissions = ['email', 'ads_management', 'pages_show_list', 'publish_pages', 'manage_pages', 'ads_read', 'business_management'];

您需要让您的APP获得Facebook的批准才能访问权限ads_management

它将在资源管理器上运行,因为它只是 FB 提供的用于测试和玩耍的工具。

您应该使用 act_ 字符串作为前缀,因此

试试这个:

   $adaccount = new AdAccount('act_331*****10774');

而不是这个:

   $adaccount = new AdAccount('331*****10774');

此外,如果您测试 example:

use FacebookAds\Object\AdAccount;
use FacebookAds\Api;
use FacebookAds\Logger\CurlLogger;

$id = 'act_XXXX';

$api = Api::init($app_id, $app_secret, $access_token);
$api->setLogger(new CurlLogger());

$fields = array(
  'name',
  'objective',
);
$params = array(
  'effective_status' => array('ACTIVE','PAUSED'),
);
echo json_encode((new AdAccount($id))->getCampaigns(
  $fields,
  $params
)->getResponse()->getContent(), JSON_PRETTY_PRINT);

按预期工作

希望对您有所帮助