如何从Facebook中的光标数组中获取数据来自ads insights api call

时间:2017-03-20 12:37:14

标签: facebook-graph-api facebook-php-sdk facebook-ads-api facebook-marketing-api

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

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

它会产生像

这样的结果

FacebookAds \ Cursor对象 (     [回复:受保护] =&gt; FacebookAds \ Http \ Response Object         (             [要求:受保护] =&gt; FacebookAds \ Http \ Request Object                 (                     [client:protected] =&gt; FacebookAds \ Http \ Client Object                         (                             [requestPrototype:protected] =&gt; FacebookAds \ Http \ Request Object                                 (

提前致谢。

4 个答案:

答案 0 :(得分: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);

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

答案 1 :(得分:2)

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

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

答案 2 :(得分:0)

不确定我的方法是否不同于Angelina的方法,因为它是SDK的不同区域,还是因为自从她回答以来已被更改,但是下面的代码对我有用,并且希望对其他人有用:< / p>

([0,1] == arr).all(axis = 1).any()

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

答案 3 :(得分:0)

也许尝试:

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

然后去找普通的东西:

print_r($res['data']);