如何从Facebook中的光标数组中获取数据来自广告洞察api调用

问题描述 投票:1回答:4

在调用getInsights()方法时,它给出了一个对象。所以我想从中访问一些数据。这是api电话

$account->getInsights($fields, $params);
echo '<pre>';print_r($resultArr);die;

它会给出结果

FacebookAds \ Cursor Object([response:protected] => FacebookAds \ Http \ Response Object([request:protected] => FacebookAds \ Http \ Request Object([client:protected] => FacebookAds \ Http \ Client Object([requestPrototype: protected] => FacebookAds \ Http \ Request Object(

提前致谢。

facebook-graph-api facebook-php-sdk facebook-ads-api facebook-marketing-api
4个回答
2
投票

以下应该有效:

$resultArr = $account->getInsights($fields, $params)[0]->getData();
echo '<pre>';
print_r($resultArr);
die;

如果光标中有多个对象,则可以循环遍历它:

foreach ($account->getInsights($fields, $params) as $obj) {
    $resultArr = $obj->getData();
    echo '<pre>';
    print_r($resultArr);
}
die;

在这种情况下,如果默认情况下将implicitFetch选项设置为true,则:

Cursor::setDefaultUseImplicitFetch(true);

你会确定你正在循环所有的结果。


2
投票

我使用这段代码,它对我有用,我希望对你有用......

    $adset_insights = $ad_account->getInsights($fields,$params_c); 
    do {
            $adset_insights->fetchAfter();
    } while ($adset_insights->getNext());
    $adsets = $adset_insights->getArrayCopy(true); 

1
投票

也许试试:

$insights = $account->getInsights($fields, $params);
$res = $insights->getResponse()->getContent(); 

然后去寻找通常的东西:

print_r($res['data']);

0
投票

不确定我的方法是否与Angelina的不同,因为它是SDK的一个不同区域,或者是因为它自从她的答案以来已被更改,但下面是适用于我的代码,并且希望对其他人有用:

        $location_objects = $cursor->getArrayCopy();
        $locations = array();

        foreach($location_objects as $loc)
        {
            $locations[] = $loc->getData();
        }
        return $locations;

调用getArrayCopy返回一个AbstractObjects数组,然后调用getData返回一个对象props数组。

© www.soinside.com 2019 - 2024. All rights reserved.