[Facebook] 計算粉絲團內特定文章的按讚數

Standard

最近新案的需求:計算數個粉絲團中的特定文章按讚數,需要判斷加總達某個數字便可做其他事情。

去開發者討論區問之後得到方向了,詳細說明在這:
http://developers.facebook.com/docs/reference/api/page?ref=mf

實際做法如下:

註:PHP 5.2 之後似乎就有支援 json_decode 了,由於此案用的主機只有 5.1.6,所以我是另外去抓 PEARJSON.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");

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *