Я получаю защищенный объект, возвращенный после вызова API в Facebook Ads.
Я звоню с
$campaigns = $account->getAdCampaigns($fields, $params);
и класс учетной записи не имеет никакого метода для чтения защищенных данных.
FacebookAds\Cursor Object
(
[response:protected] => FacebookAds\Http\Response Object
(
[content:protected] => Array
(
[data] => Array
(
[0] => Array
(
[name] => <campaign_name>
[objective] => WEBSITE_CLICKS
[id] => <campaign_id>
)
)
)
Нужно ли создавать эту функцию. Кажется странным, что SDK не имеет такой функциональности уже.
Попробуй это!
use FacebookAds\Api;
Api::init($app_id, $app_secret, $access_token);
use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\CampaignFields;
$account = new AdAccount('act_'.$act_id);
$objects = $account->getCampaigns(array(
CampaignFields::NAME,
CampaignFields::ID,
CampaignFields::STATUS,
));
$objects->setUseImplicitFetch(true); // set this before loop
foreach ($objects as $object) {
if($object->{CampaignFields::STATUS }=='ACTIVE'){
$campaign_id= $object->{CampaignFields::ID};
$name= $object->{CampaignFields::NAME};
$status = $object->{CampaignFields::STATUS};
$values[] = array(
'campaign_id' => $campaign_id,
'name' => $name,
'status' => $status,
);
}
}
echo json_encode($values);
Других решений пока нет …