Не удалось получить какие-либо поля набора объявлений из Facebook Ads API (PHP v2.8.1)

Я получаю поля AdAccount просто отлично. Но все мои попытки получить наборы объявлений не увенчались успехом. Я пытаюсь получить представление обо всех кампаниях, запущенных под учетной записью adaccount. Но сначала я проверял, могу ли я получить только названия кампаний, но это не работает. Некоторые моменты, которые следует отметить.

* Я использовал идентификатор n secret из приложения (ничего не делал для белого списка), зарегистрированного с использованием той же учетной записи, которая имеет доступ администратора к другой рекламной учетной записи (это основной рекламный счет, для которого создаются все объявления).

*Я использовал токен временного доступа, сгенерированный с помощью обозревателя графиков с разрешениями ads_read и ads_management.

*Get->v2.8->me?fields=adaccounts{campaigns{adsets{name}}} прекрасно извлекает имена в проводнике.

include 'vendor/autoload.php';
use FacebookAds\Api;

Api::init(APP_ID, APP_SECRET, ACCESS_TOKEN);

$api = Api::instance();

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

$fields = array(
  AdAccountFields::ID,
  AdAccountFields::NAME
);

$account = new AdAccount('act_XXX');
$u=$account->read($fields);
echo $u->name.'<br>';

$adsets = $account->getAdSets(array(
  AdSetFields::NAME
));

foreach ($adsets as $adset) {
  echo $adset->name;
}

person Ashitaka    schedule 28.12.2016    source источник
comment
у вас есть ответ об ошибке?   -  person TIGER    schedule 28.12.2016
comment
echo $u->name возвращает мне имя владельца учетной записи.. после этого полностью пусто.. если я сделаю print_r(adsets ), он вернет массив объектов с несколькими размерами   -  person Ashitaka    schedule 28.12.2016


Ответы (1)


Попробуй это ! использовать FacebookAds\Api;

 Api::init($app_id, $app_secret, $access_token);

 use FacebookAds\Object\Campaign;
 use FacebookAds\Object\Fields\AdSetFields;

 $account = new Campaign($campaign_id);

 $objects = $account->getAdSets(array(
 AdSetFields::NAME,
 AdSetFields::ID,
 AdSetFields::STATUS,

 ));

 $objects->setUseImplicitFetch(true); // set this before loop
 foreach ($objects as $object) {
 if($object->{AdSetFields::STATUS}=='ACTIVE'){

    $adset_id= $object->{AdSetFields::ID};
    $name= $object->{AdSetFields::NAME};
    $status = $object->{AdSetFields::STATUS};

    $values[] = array(
    'adset_id' => $adset_id,
    'name' => $name,
    'status' => $status,


   );
    }
 }
 echo json_encode($values);
person Harshpreet Singh    schedule 04.05.2017