Php 活动洞察返回空Facebook营销API

Php 活动洞察返回空Facebook营销API,php,facebook,api,Php,Facebook,Api,我正在抓取与一个用户相关的所有活动,并试图获得活动的见解。我很好地了解了这些活动,但当我试图了解这些信息时,它总是返回空值。我尝试过改变日子和不同的领域 $api = Api::instance(); $id = trim($_POST['actid']); $account = new AdAccount($id); $fields = array( CampaignFields::NAME, CampaignFields::ID, ); $campaigns = $a

我正在抓取与一个用户相关的所有活动,并试图获得活动的见解。我很好地了解了这些活动,但当我试图了解这些信息时,它总是返回空值。我尝试过改变日子和不同的领域

$api = Api::instance();

$id = trim($_POST['actid']);

$account = new AdAccount($id);

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

$campaigns = $account->getCampaigns($fields);



$cleanArray = [];
foreach ($campaigns as $campaign) {

    $campFields = array(
    AdsInsightsFields::CPC,
);

$params = array(
    'time_range' => array(
    'since' => (new DateTime("-1 day"))->format('Y-m-d'),
    'until' => (new DateTime('NOW'))->format('Y-m-d'),
    ),
);

$campInsights = $campSelect->getInsights($campFields, $params);
$innerArray = [];
array_push($innerArray,$campaign->{CampaignFields::NAME});
array_push($innerArray,$campaign->{CampaignFields::ID});
array_push($innerArray,$campInsights->{AdsInsightsFields::CPC});
array_push($cleanArray,$innerArray);
}

header('Content-Type: application/json');
echo json_encode($cleanArray);

调用
getInsights
返回一个迭代器,因为收集洞察的请求可以返回一组结果

如果您确定它只返回一个结果,那么您可以访问
$campInsights[0]

此行中的代码也有错误,因为未定义
$campSelect

$campInsights = $campSelect->getInsights($campFields, $params);
应该是:

$campInsights = $campSelect->getInsights($campFields, $params);

所以这是一个范围问题,因为我仍然需要以数组的形式遍历对象。发布此消息以帮助他人

foreach($campInsights as $insights){
    $cpc = $insights->{AdsInsightsFields::CPC}.PHP_EOL;
    $clicks = $insights->{AdsInsightsFields::WEBSITE_CLICKS}.PHP_EOL;
}

在我遍历对象之后,我能够获取值。

感谢您捕捉到这一点。这实际上是一个范围问题。我会发布我的答案来帮助其他人,因为他们的文档不是很好。