今天我的问题是由facebooks php sdk v5引起的。我正在尝试从特定页面检索指标以用作分析。我目前可以检索页面信息和其他基本数据,因此我遇到问题的代码段将添加到下面
以下是我的代码片段:
foreach($page as $key){
if($key['name']=='PAGE NAME'){
$pageId=$key['id'];
try{
$request = $fb->request('GET', '/' . $pageId. '/insights/page_impressions_organic',array('period' => 'month',),$access_token);
$response = $fb->getClient()->sendRequest($request);
// ERROR Code
}catch(Facebook\Exceptions\FacebookResponseException $e) {
// When Graph returns an error
echo 'Graph returned an error: ' . $e->getMessage();
exit;
} catch(Facebook\Exceptions\FacebookSDKException $e) {
// When validation fails or other local issues
echo 'Facebook SDK returned an error: ' . $e->getMessage();
exit;
}
$res=$response->getGraphEdge()->asArray();
var_export($res);
echo "</br>";
// to print out page impressions
foreach($res as $metric){
echo "Test".$metric->name;
}
}
}
我的问题是我真的不明白请求的返回。初学者到facebook php的文档很难理解。我想知道这里是否有人可以解释我如何从某些指标中获取特定值,例如page_impressions_organic。
以下是var_export结果的一部分:
array ( 0 =>
array ( 'name' => 'page_impressions_organic', 'period' => 'day','values' => array (0 =>
array ( 'value' => 0, 'end_time' => DateTime::__set_state(
array( 'date' => '2016-03-25 07:00:00.000000', 'timezone_type' => 1, 'timezone' => '+00:00', )), )
从上面的出口我想提取“价值”&#39;从这个数组。在这个数组之后还有2个结果(1 =&gt; ...)和数组(2 =&gt; ...)
答案 0 :(得分:1)
鉴于
array ( 0 =>
array ( 'name' => 'page_impressions_organic', 'period' => 'day','values' => array (0 =>
array ( 'value' => 0, 'end_time' => DateTime::__set_state(
array( 'date' => '2016-03-25 07:00:00.000000', 'timezone_type' => 1, 'timezone' => '+00:00', )), )
您需要使用:
echo $res[0]['values'][0]['value'];
提取与value
相关联的数字。
此外,如果使用换行符对数组进行格式化,则读取数组要容易得多。上面的数组与
相同$res = array(
0 => array(
'name' => 'page_impressions_organic',
'period' => 'day',
'values' => array(
0 => array(
'value' => 0,
'end_time' => DateTime::__set_state(array(
'date' => '2016-03-25 07:00:00.000000',
'timezone_type' => 1,
'timezone' => '+00:00')
)
)
)
)
);