PHPでページのいいね数、ツイート数、はてブ数を取得する方法を紹介します。
最近では、これらのソーシャルボタンを設置しているWebサイトが多くなってきました。
このようなボタンです。
これらのボタンを設置してクリックされることで、それらのSNSでの宣伝効果が得られるのが主なメリットです。
ブログであれば記事ページに設置されることが多いと思います。
これらのクリック数を管理したい、一覧でページ毎に確認したいということは多いのではないでしょうか。
そういった画面を作成するために必要な、PHPでページ毎に取得する方法を掲載します。
各SNSでは、クリック情報を取得するためのAPIが用意されています。
これらのAPIに該当ページのURLを渡すことで簡単に取得できるのです。
例えばFacebookであれば、下記のような実装の流れとなります。
たったこれだけですw
ちなみに Twitterやはてなブックマークでも全く同様です。
下記サンプルコードでは、これらの関数をまとめて、いいね数、ツイート数、はてブ数の3つのクリック数を取得していますので、参考にしてください。
表示側の記述例
$socials = getSocialCount('http://example.jp/');
echo "はてブ数:" . $socials['hate'] . "<br />";
echo "ツイート数:" . $socials['twit'] . "<br />";
echo "いいね数:" . $socials['face'] . "<br />";
取得ロジックの例
function getSocialCount($url) {
$socials = array();
$socials['hate'] = getHate($url);
$socials['twit'] = getTwit($url);
$socials['face'] = getFace($url);
return $socials;
}
function getHate($url) {
$hate_uri = 'http://b.hatena.ne.jp/entry/json/?url=' . rawurlencode($url);
$json = file_get_contents($hate_uri);
$result = json_decode($json);
return (int) $result->count;
}
function getTwit($url) {
$twit_uri = 'http://urls.api.twitter.com/1/urls/count.json?url=' . rawurlencode($url);
$json = file_get_contents($twit_uri);
$result = json_decode($json);
return $result->{'count'};
}
function getFace($url) {
$like_uri = 'http://api.facebook.com/method/fql.query?query=select+total%5Fcount+from+link%5Fstat+where+url%3D%22' . rawurlencode($url).'%22';
$xml = file_get_contents($like_uri);
$result = simplexml_load_string($xml);
return $result->link_stat->total_count;
}
getSocialCountで、各SNS用の関数を全て実行して、取得した数をArray変数にまとめてリターンしています。
もしよろしければ、この記事のソーシャルボタンもクリックしていただけると光栄ですw