2017-02-14 1 views
1

продвинутое спасибо за то, что вы нашли время, отвечая на это. Я хотел бы получить весь список моих кампаний в API маркетинга facebook.Как получить список кампаний в API маркетинга Facebook с использованием PHP

это мой код:

use FacebookAds\Object\AdUser; 

use FacebookAds\Object\AdAccount; 
use FacebookAds\Object\Fields\AdAccountFields; 

use FacebookAds\Object\Campaign; 
use FacebookAds\Object\AdCampaign; 
use FacebookAds\Object\Fields\CampaignFields; 
use FacebookAds\Object\Fields\AdCampaignFields; 

use FacebookAds\Object\Fields\AdsInsightsFields; 

use FacebookAds\Object\Fields\AdSetFields; 

$account = new AdAccount($account_id); 
$params = array(
    'time_interval' => array(
     'day_start' => array('year' =>'2015', 'month'=> '5', 'day'=>'1'), 
     'day_stop' => array('year'=>'2015', 'month'=>'5', 'day'=>'31') 
    ), 
    'limit' => 500, 
); 
$fields = array(
    AdCampaignFields::NAME, /* <--- this is the error */ 
    AdCampaignFields::OBJECTIVE, 
    AdCampaignFields::STATUS, 
); 

$campaigns = $account->getAdCampaigns($fields,$params); 
print_r($campaigns); 

Теперь нет результата, показанного вместо этого есть ошибка:

[14-Feb-2017 01:26:55 UTC] PHP Fatal error: Class 'FacebookAds\Object\Fields\AdCampaignFields' not found in /home/rbadmin17/public_html/test_17/index.php on line 98 

Я уже называю «AdCampaignFields» и до сих пор он говорит, что класс не найден.

Спасибо за помощь ...

+0

Не похоже, что вы включили автозагрузчик. Перечитайте https://developers.facebook.com/docs/php/gettingstarted. – ceejayoz

+0

На самом деле, я уже включил его. 'define ('SDK_DIR', __DIR__. '/ facebook'); // Путь к каталогу SDK \t \t \t $ loader = включить SDK_DIR. '/ Vendor/autoload.php'; 'Я просто не включил его в свой вопрос –

+1

Поиск в репозитории github объявлений SDK не показывает единственный хит для поискового запроса 'AdCampaignFields' - так вы уверены, что предполагается, что существует ...? Откуда вы взяли код? – CBroe

ответ

1

Ваш код выглядит правильно, но AdCampaignFields класс еще не существует в актуальной SDK и был заменен классом CampaignFields (который на самом деле не необходимые для вашего кода).

Ваш код должен работать только удалив строку:

use FacebookAds\Object\Fields\AdCampaignFields; 

Edit: на самом деле некоторые примеры док FB являются устаревшими. Просто загляните в папки SDK, чтобы увидеть их сами, когда получите такую ​​ошибку. Иногда это просто имя класса, которое было изменено.

Смежные вопросы