由于Facebook改变了他们的API并弃用了旧的API,我需要获得关于单个页面的数据(喜欢计数,分享计数,评论计数)。
我想出了如何通过Facebook图表获取数据(示例链接):
https://graph.facebook.com/?fields=og_object{likes.limit(0).summary(true)},share&ids=http://www.businessinsider.com/airlines-dont-disclose-carrier-fee-that-inflates-ticket-prices-2016-9
但是现在我不知道如何在php中回显单个数据(如计数)。我尝试使用json,但没有成功:
$json = file_get_contents($xml);
$json_output = json_decode($json);
有什么建议吗?
API资源管理器自动添加访问令牌,但您必须在URL中手动添加它:
https://graph.facebook.com/?fields=og_object{likes.limit(0).summary(true)},share&ids=http://www.businessinsider.com/airlines-dont-disclose-carrier-fee-that-inflates-ticket-prices-2016-9&access_token=xxx
结果:{
"http://www.businessinsider.com/airlines-dont-disclose-carrier-fee-that-inflates-ticket-prices-2016-9": {
"og_object": {
"likes": {
"data": [
],
"summary": {
"total_count": 0,
"can_like": true,
"has_liked": false
}
},
"id": "949055545223224"
},
"share": {
"comment_count": 0,
"share_count": 346
},
"id": "http://www.businessinsider.com/airlines-dont-disclose-carrier-fee-that-inflates-ticket-prices-2016-9"
}
}
json_decode()的结果是object。所以你可以像这样浏览:
<?php
$url = 'https://graph.facebook.com/?fields=og_object{likes.limit(0).summary(true)},share&ids=http://www.businessinsider.com/airlines-dont-disclose-carrier-fee-that-inflates-ticket-prices-2016-9';
$json = file_get_contents($url);
$json_output = json_decode($json);
foreach( $json_output as $site=>$data ){
echo $site."n";
echo $data->og_object->likes->summary->total_count;
}
?>