PHPでいいね数、ツイート数、はてブ数を取得する方法

2013/11/22

ソーシャルボタンのクリック数を取得

概要

PHPでページのいいね数、ツイート数、はてブ数を取得する方法を紹介します。
最近では、これらのソーシャルボタンを設置しているWebサイトが多くなってきました。
このようなボタンです。
ソーシャルボタン

これらのボタンを設置してクリックされることで、それらのSNSでの宣伝効果が得られるのが主なメリットです。
ブログであれば記事ページに設置されることが多いと思います。

これらのクリック数を管理したい、一覧でページ毎に確認したいということは多いのではないでしょうか。
そういった画面を作成するために必要な、PHPでページ毎に取得する方法を掲載します。

取得方法

各SNSでは、クリック情報を取得するためのAPIが用意されています。
これらのAPIに該当ページのURLを渡すことで簡単に取得できるのです。

例えばFacebookであれば、下記のような実装の流れとなります。

  • APIを使用してURLからクリック数を取得する関数を作成
  • 作成した関数を使ってクリック数を取得して表示

たったこれだけです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

Related

Vagrant+Docker+PHP環境で「session.save_path」指定時に、セッションファイルが空になるエラー

ファイル共有でのフォルダの所有者を設定 結論 PHP5.4.28 からセッションファイルのownerはrootもしくはWebサーバのユーザに限るという制限が...

LINEと連携したテイクアウト事前注文システム徹底比較!

目次 テイクアウト予約・注文受付システムのトレンド LINEと連携したテイクアウト事前注文システムの価格表 L.B.B.Cloud テイクイーツ ...

PHPで動画の撮影日を取得

PHPで動画の撮影日を取得 概要 PHPからffprobeコマンドを実行し、動画の撮影日時を取得します。 コード $posted_at = ...

FullCalendarでGoogleカレンダーのようなUIを実装

jQueryプラグインFullCalendarのサンプル 概要 FullCalendarを使用して、GoogleカレンダーのようなUIを実装する使用例を...

PHP Laravel5.2でmulti-auth(複数テーブルでの認証)を実装

Laravel5.2でマルチ認証 概要 LaravelとはPHPの中で今最も伸びているフレームワークです。 処理速度が遅いなどありますが、かなり使い安く拡...

PHP 正規表現でIPアドレス形式の文字列か判定

正規表現でIPアドレスの入力チェック 概要 フォームで入力されたIPアドレスが正当な文字列か判定するためのバリデーション処理を実装します。 基本的...
トップへ戻る