最近新案的需求:計算數個粉絲團中的特定文章按讚數,需要判斷加總達某個數字便可做其他事情。
去開發者討論區問之後得到方向了,詳細說明在這:
http://developers.facebook.com/docs/reference/api/page?ref=mf
實際做法如下:
註:PHP 5.2 之後似乎就有支援 json_decode
了,由於此案用的主機只有 5.1.6,所以我是另外去抓 PEAR
的 JSON.php
去解。HttpRequest
也是另外抓的。
註:307559445728
是某粉絲團的ID, 本例為取得裡面 ID 為 307559445728_479251685728
的這篇貼文的按讚數
<?php
if (!function_exists('json_decode')) {
function json_decode($content, $assoc=false) {
require_once 'JSON.php';
if ($assoc) {
$json = new Services_JSON(SERVICES_JSON_LOOSE_TYPE);
} else {
$json = new Services_JSON;
}
return $json->decode($content);
}
}
if (!function_exists('json_encode')) {
function json_encode($content) {
require_once 'JSON.php';
$json = new Services_JSON;
return $json->encode($content);
}
}
require_once 'HttpRequest.php';
require_once 'HttpResponse.php';
require_once 'HttpClient.php';
function getPostLikes($url)
{
$likes = 0;
$http = new HttpClient();
$request = new HttpRequest();
$request->setMethod('GET');
$request->setUrl($url);
$response = $http->doRequest($request);
$pageContents = $response->getBody();
$json = json_decode($pageContents);
$likes = $json->{'likes'};
return $likes;
}
?>
改寫成一個 funciton,便可用下面方式呼叫:
$likes = getPostLikes("https://graph.facebook.com/307559445728_479251685728");