はじめに
Facebookのいいね!数を画像つきで取得するAPIみたいなものを作ってみました。
Facebookのいいね!はFacebookが用意しているAPIからそのカウントを取得できるのですが、数値しか取得できないので、PHPのImage関数を使って、あらかじめ用意したいいね!のイメージにカウントを書き足して出力しています。
Facebookのいいね!数を取得する
Facebookのいいね!数を取得するには、以下のサイトが参考になります。
具体的には、PHPで以下のコードを書くといいね!のカウントが取得できます。
$like_xml_uri = 'http://api.facebook.com/method/fql.query?query=select+total%5Fcount+from+link%5Fstat+where+url%3D%22'.rawurlencode(対象のURL).'%22'; $result = file_get_contents( $like_xml_uri ); $like_xml = simplexml_load_string($result); $iine = (string)$like_xml->link_stat->total_count;
用意した画像にいいね!数を書き足す
1.次のようなカウント部分が空白の画像を用意します。これは以下のサイトから画像を取得してきて、ペイントソフトでちょこっと修正して作成したものです。
2.この画像をPHPのイメージ関数で読み込んで、いいね!の数を書き足していきます。
// 画像の新規作成 $img = imagecreatefromgif("./f_like_count.gif"); // 色の作成(文字) $col = imagecolorallocate($img, 77, 51, 51); // 文字を書く imagestring($img, 2, 80, 3, $iine, $col); // 画像出力 imagepng($img);
3. いいね!の数が0の場合には1×1pxの透過gifを出力するようにしています。
if($iine == 0) { print base64_decode('R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); return false; }
APIの全体ソース
エラー処理とかないですが、こんな感じです。
<?php $sample_url = $_GET['URL']; // いいね!数の取得 $like_xml_uri = 'http://api.facebook.com/method/fql.query?query=select+total%5Fcount+from+link%5Fstat+where+url%3D%22'.rawurlencode($sample_url).'%22'; $result = file_get_contents( $like_xml_uri ); $like_xml = simplexml_load_string($result); // ヘッダの指定 header("Content-type: image/gif"); header("Cache-control: no-cache"); // いいね!数を取得する $iine = (string)$like_xml->link_stat->total_count; // いいね!数が0なら、1×1の透過gifを出力して終了 if($iine == 0) { print base64_decode('R0lGODlhAQABAIAAAAAAAAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw=='); return false; } // 文字数によってスペースで埋める switch(mb_strlen($iine)) { case 1: $iine = " " . $iine; break; case 2: $iine = " " . $iine; break; } // 画像の新規作成 $img = imagecreatefromgif("./f_like_count.gif"); // 色の作成(文字) $col = imagecolorallocate($img, 77, 51, 51); // 文字を書く imagestring($img, 2, 80, 3, $iine, $col); // 画像出力 imagepng($img); // 画像の消去(メモリの解放) imagedestroy($img); ?>
使い方
以下のURLにアクセスして、URLパラメタに対象のURLを指定すると画像が表示できます。
こんな感じで出力されます。数字部分のフォントがちょっと似ていない。
ツイッターの超プロが教える Facebook仕事術
posted with amazlet at 11.12.18
樺沢紫苑
サンマーク出版
売り上げランキング: 2834
サンマーク出版
売り上げランキング: 2834