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

问题描述 投票:1回答:2

我正在研究facebook ads API(3.2)但我得到了一些奇怪的错误。我试图得到campaigns以下是根据文档Here我正在使用的方法

public function getcampaigns() {
   $adaccount = new AdAccount('331*****10774');
   $campaigns = $adaccount->getCampaigns();
   print_r($campaigns);
}

但我得到错误enter image description here

然后我尝试与Explorer相同的access_token,它运作良好。 enter image description here

我在access_token中提供以下权限

$this->permissions = ['email', 'ads_management', 'pages_show_list', 'publish_pages', 'manage_pages', 'ads_read', 'business_management'];
php facebook facebook-graph-api facebook-ads-api
2个回答
2
投票

你应该用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);

按预期工作

希望这有帮助


0
投票

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

它将适用于资源管理器,因为它只是FB提供的测试和游戏工具。

© www.soinside.com 2019 - 2024. All rights reserved.