如何从Facebook ads API/PHP SDK读取受保护的数据

如何从Facebook ads API/PHP SDK读取受保护的数据,php,facebook,facebook-ads-api,Php,Facebook,Facebook Ads Api,我得到一个从Facebook广告API调用返回的受保护对象 我正在和你打电话 $campaigns = $account->getAdCampaigns($fields, $params); account类没有任何读取受保护数据的方法 FacebookAds\Cursor Object ( [response:protected] => FacebookAds\Http\Response Object ( [content:prot

我得到一个从Facebook广告API调用返回的受保护对象

我正在和你打电话

$campaigns = $account->getAdCampaigns($fields, $params);
account类没有任何读取受保护数据的方法

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>
                                )

                )

        )
FacebookAds\Cursor对象
(
[响应:受保护]=>FacebookAds\Http\response对象
(
[内容:受保护]=>阵列
(
[数据]=>阵列
(
[0]=>阵列
(
[名称]=>
[目标]=>网站点击次数
[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);
试试这个

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);

你想实现什么?我们没有考虑过你需要读这个。如果你试图在光标中读取对象,你可以使用GETObjutsSo(),它将给你所有的运动。在这个例子中,响应对象只用于知道如何遍历整个页面。@ PaulBain -试图访问运动。(ADU集团)数据(特别是ID、名称、目标、状态)我唯一能找到的方法是把每一个单独的都通过,这很快使我达到了我的限速。我真的很想找到其他的方法来做这件事。任何建议都是非常感谢的。谢谢。你想实现什么?我们没有考虑过你需要重新。广告。如果您试图读取光标中的对象,可以使用getObjects()命令,在这种情况下,它将为您提供所有活动。Response对象仅用于了解如何遍历整个页面集。@PaulBain-尝试访问活动(广告活动组)数据(特别是ID、名称、目标、状态)通过传递。我能找到的唯一其他方法是通过每个单独传递,这只会使我很快达到我的利率限制。我真的很难找到任何其他方法来做到这一点。任何建议都将不胜感激。谢谢。