全8サイト!SNSのカウント取得方法まとめ 2014年6月版

  • 2014.06.15(Sun) 21:30
  • WEB制作
ソーシャルカウントの写真

TwitterやFacebookのソーシャルシェアボタンをオリジナルデザインにしたかったり、またTweet数やイイネ!数のデータを元にランキングシステムなどを作りたい場合に役立つソーシャルカウントの取得方法をまとめてみました。よろしければ参考にしてみて下さい!

1Twitter

Twitter
Twitter

Twitterの場合、下記のURLにリクエストを送ることで、カウント数を取得できます。

サンプルでGoogleトップページのTweet数を取得してみましょう。下記のリンクにアクセスしてみて下さい。

次のJSONフォーマットのデータがブラウザに表示されます。この場合、220,315がツイート数ということになります。

カウント数が0の場合は、0として結果が返ってくるので、処理の実装が簡単ですね。

1-1PHPでTwitterのカウントを取得

PHPの場合は下記のように取得します。ソースコードをコピーする場合はダブルクリックが便利です!

<?php
//JSONデータを取得
$json = @file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=https://www.google.com/');

//JSONデータを連想配列に直す
$array = json_decode($json,true);

//カウントを出力
echo $array['count'];

1-2JavascriptでTwitterのカウントを取得

Javascriptの場合は下記のように取得します。なお、jQueryを利用しています。

//チェックするURL
var check_url = 'https://www.google.com/';

//Ajax通信
$.ajax({
	url:'http://urls.api.twitter.com/1/urls/count.json?url=' + check_url,
	dataType:"jsonp",
	success:function(obj){ alert('カウント数は' + obj.count + 'です!'); },
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

2Facebook

Facebook
Facebook

Facebookの場合は、下記のURLにリクエストを送ることで、シェア数とコメント数を取得することができます。

例えばGoogleトップページのシェア数、コメント数を取得したい場合は次のURLにアクセスして下さい。

次のJSONデータがブラウザに表示されるはずです。sharesの331,625がシェア数、commentsの83がコメント数です。

Facebookの場合、カウントが0だと0というデータを返しません。そのため、存在しない場合は0というように条件分けをプログラムに加える必要があります。

2-1PHPでFacebookのシェア数を取得

PHPでFacebookのカウントを取得したい場合は、次のようにします。先ほども説明しましたが、0の場合はデータが存在しないので、条件分けをしてやる必要があります!

<?php
//JSONデータを取得
$json = @file_get_contents('http://graph.facebook.com/?id=https://www.google.com/');

//JSONデータを連想配列に直す
$array = json_decode($json,true);

//データが存在しない場合は0扱いにする
if(!isset($array['shares'])){
	$count = 0;
}else{
	$count = $array['shares'];
}

//カウントを出力
echo $count;

2-2JavascriptでFacebookのシェア数を取得

Ajaxで取得する場合、次のようになります。jQueryを利用しています。

//チェックするURL
var check_url = 'https://www.google.com/';
var count;

//Ajax通信
$.ajax({
	url:'http://graph.facebook.com/?id=' + check_url,
	dataType:"jsonp",
	success:function(obj){

		//カウントが0の場合
		if(typeof(obj.shares) == 'undefined'){
			count = 0;
		}else{
			count = obj.shares;
		}

		//カウントを出力
		alert('カウント数は' + count + 'です!');
	},
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

3Google+

Google+
Google+

Google+の場合、TwitterやFacebookのように、手軽にカウントを取得するためのURLがありません。そのため、PHPを利用して次のように取得しましょう。こちらはもう、決まり事のようなものだと思って下さい。

3-1PHPでGoogle+の+1数を取得

<?php
//取得するURL
$url = 'https://www.google.com/';

//GETリクエストでURLを指定する場合
if(isset($_GET['url'])) $url = $_GET['url'];

//CURLを利用してJSONデータを取得
$ch = curl_init();
curl_setopt( $ch, CURLOPT_URL, "https://clients6.google.com/rpc?key=AIzaSyCKSbrvQasunBoV16zDH9R33D88CeLr9gQ" );
curl_setopt( $ch, CURLOPT_POST, 1 );
curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
curl_setopt( $ch, CURLOPT_POSTFIELDS, '[{"method":"pos.plusones.get","id":"p","params":{"nolog":true,"id":"' . $url . '","source":"widget","userId":"@viewer","groupId":"@self"},"jsonrpc":"2.0","key":"p","apiVersion":"v1"}]' );
curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true );
curl_setopt( $ch, CURLOPT_HTTPHEADER, array( 'Content-type: application/json' ) );
$result = curl_exec( $ch );
curl_close( $ch );

//JSONデータからカウント数を取得
$obj = json_decode( $result, true );

//カウントが0の場合
if(!isset($obj[0]['result']['metadata']['globalCounts']['count'])){
	$count = 0;
}else{
	$count = $obj[0]['result']['metadata']['globalCounts']['count'];
}

//カウントを出力
echo $count;

3-2JavascriptでGoogle+の+1数を取得

Javascriptで取得する方法はStackoverflowなどで様々、議論されているようですが、試したところ、どれもなかなか上手くいきませんでした。そのため「どうしてもJavascriptで」という場合は、本末転倒な気もしますが上記のPHPを通すようにしましょう。

//PHPプログラムのURL
var php_url = '上記PHPプログラムのURL';

//チェックするURL
var check_url = 'https://www.google.com/';

//Ajax通信
$.ajax({
	url:php_url + '?url=' + check_url,
	success:function(count){ alert('カウント数は' + count + 'です!'); },
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

4はてなブックマーク

はてなブックマーク
はてなブックマーク

どんどんいきましょう!続いて、はてなブックマークのカウント数を取得する方法です。取得するには、下記のURLにリクエストを送ります。

サンプルでGoogleトップページのはてブ数を取得してみましょう。下記のリンクにアクセスしてみて下さい。

はてブの場合は、ダイレクトで数字を返してくれます。148がブックマーク数です。

カウント数が0の場合は下記のように0ではなく空白を返します。そのため、Facebookの時と同様に条件分けの処理が必要です!

4-1PHPではてなブックマーク数を取得

はてなブックマーク数をPHPで取得する場合は下記のようにプログラミングします。

<?php
//はてブ数を取得
$count = @file_get_contents('http://api.b.st-hatena.com/entry.count?url=https://www.google.com/');

//カウントが0の場合
if(!isset($count) || !$count){
	$count = 0;
}

//カウントを出力
echo $count;

4-2Javascriptではてなブックマーク数を取得

Ajaxで取得する場合、次のようになります。jQueryを利用しています。

//チェックするURL
var check_url = 'https://www.google.com/';
var count;

//Ajax通信
$.ajax({
	url:'http://api.b.st-hatena.com/entry.count?url=' + encodeURI(check_url),
	dataType:"jsonp",
	success:function(count){

		//カウントが0の場合
		if(count == ''){ count = 0; }

		//カウントを出力
		alert('カウント数は' + count + 'です!');
	},
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

5Pinterest

Pinterest
Pinterest

続いて、PinterestのPINの数を取得する方法です。下記のURLにリクエストを送ると、「そのページに存在する全画像のピンの合計数」を取得することができます。

例えば、500pxの人気写真特集のページの合計ピン数を取得するには、下記のようにURLを組み立てます。アクセスしてみて下さい。

次のように、receiveCount(〜)の中に入る形で、カウント数のJSONデータが返ってきます。PHPで取得する場合はこのreceiveCount()の部分は単純に邪魔なので、正規表現などで削除してやる必要がありますねー。

カウント数が0の場合は、しっかりと0を返してくれます。こちらは親切です。

5-1PHPでPinterestのピン数を取得

pinterestのカウント数をPHPで取得するには、次のようにします。

<?php
//JSONデータを取得
$json = @file_get_contents('http://api.pinterest.com/v1/urls/count.json?url=http://500px.com/popular');
 
//receiveCount(〜)を削除
$json = rtrim($json,')');
$json = ltrim($json,'receiveCount(');
 
//JSONデータを連想配列に直す
$array = json_decode($json,true);
 
//カウントを出力
echo $array['count'];

5-2JavascriptでPinterestのピン数を取得

Javascriptでpinterestのカウント数を取得する場合です。こちらはreceiveCount(〜)は放っておいて大丈夫です。相変わらず、jQueryを利用しています。

//チェックするURL
var check_url = 'http://500px.com/popular';

//Ajax通信
$.ajax({
	url:'http://api.pinterest.com/v1/urls/count.json?url=' + check_url,
	dataType:"jsonp",
	success:function(obj){ alert('カウント数は' + obj.count + 'です!'); },
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

6Linkedin

Linkedin
Linkedin

日本のウェブサイトではなかなか見かけませんが、Linkedinのシェアカウント数を取得する方法も紹介しちゃいます。次のURLにリクエストを送って下さい。

例えば、Googleトップページの、Linkedinでのシェア数を取得するには、下記のURLにアクセスします。

pinterestと同じケースで、IN.Tags.Share.handleCount(〜);の中に入る形で、カウント数のJSONデータが返ってきます。countプロパティの1109がシェア数です。もちろん、PHPの場合はこのIN.Tags.Share.handleCount(〜);を取り除きます。

6-1PHPでLinkedinのシェア数を取得

Linkedinのシェア数をPHPで取得するには、次のようにします。

<?php
//JSONデータを取得
$json = @file_get_contents('http://www.linkedin.com/countserv/count/share?url=https://www.google.co.jp');
 
//IN.Tags.Share.handleCount(〜)を削除
$json = rtrim($json,');');
$json = ltrim($json,'IN.Tags.Share.handleCount(');
 
//JSONデータを連想配列に直す
$array = json_decode($json,true);
 
//カウントを出力
echo $array['count'];

6-2JavascriptでLinkedinのシェア数を取得

続いてJavascriptでLinkedinのシェア数を取得してみましょう!jQueryを利用してAjax通信処理をしています。

//チェックするURL
var check_url = 'https://www.google.co.jp';

//Ajax通信
$.ajax({
	url:'http://www.linkedin.com/countserv/count/share?url=' + check_url,
	dataType:"jsonp",
	success:function(obj){ alert('カウント数は' + obj.count + 'です!'); },
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

7Youtbe

Youtube
Youtube

Youtubeにチャンネルを開設している人は、Youtubeのオリジナルボタンを作ってみてはいかがでしょうか?下記のURLにリクエストすることで、チャンネル登録者の人数を取得することができます!

サンプルでMr.Childrenのチャンネル情報を取得してみましょう。下記のリンクにアクセスしてみて下さい。

チャンネルの様々な情報をJSONデータで取得することができます。その中からチャンネル登録者の部分を取り出したのが、次です。この場合、チャンネル登録者は124,515人ということになります。

ちなみに登録者数が0人の場合、次のように0というデータを返してくれます。これがあるのとないのとって地味に違いますよね…。

7-1PHPでYoutubeのチャンネル登録者数を取得

それでは実際にPHPでYoutubeのチャンネル登録者数を取得してみましょう。特に難しいことはなく、次の通りで取得できます。

//チェックするチャンネルID(大文字・小文字区別なし)
$channel = 'MrChildren';

//チャンネルデータを取得
$json = @file_get_contents("http://gdata.youtube.com/feeds/api/users/{$channel}?alt=json"); 
$obj = json_decode($json,true);

//チャンネル登録者数を出力
echo $obj['entry']['yt$statistics']['subscriberCount']; 

7-2JavascriptでYoutubeのチャンネル登録者数を取得

Javascriptの場合は、次のようになります!

//チェックするURL
var check_channel = 'MrChildren';

//Ajax通信
$.ajax({
	url:'http://gdata.youtube.com/feeds/api/users/' + check_channel + '?alt=json',
	dataType:"jsonp",
	success:function(obj){ alert('チャンネル登録者数は' + obj.entry.yt$statistics.subscriberCount + 'です!'); },
	error:function(){ alert('通信に失敗しました…。'); },
	complete:function(){ return false; }
});

8Feedly

Feedly
Feedly

続いてFeedlyの購読者数を取得してみましょう!次のURLにリクエストを送ることで、購読者数を取得することができます。なお、指定する「フィードのURL」はURLエンコードをする必要があります。

例えばGIGAZINEのフィードの購読者数を調べるには、下記の通りリクエストを送ります。試しにアクセスしてみて下さい。

チャンネルの情報を含んだJSONデータが表示されると思います。その中のsubscribersというプロパティに、購読者数の情報があります。サンプルの場合だと、購読者数は5,717人ですねー。

ちなみに購読者数が0人の場合、次のように空データが返るので、条件分けが必要になります。

8-1PHPでFeedlyの購読者数を取得

PHPでFeedlyの購読者数を取得してみましょう。こちらもYoutube同様、難しいことはなく、次の通りで取得できます。

//チェックするフィードURL
$feed = 'http://feed.rssad.jp/rss/gigazine/rss_2.0';

//URLエンコードをする
$feed = rawurlencode($feed);

//フィードのデータを取得
$json = @file_get_contents("http://cloud.feedly.com/v3/feeds/feed%2F{$feed}"); 
$obj = json_decode($json,true);

//登録者数が0の場合
if(isset($obj['subscribers'])){
	$count = $obj['subscribers'];
}else{
	$count = 0;
}

//チャンネル登録者数を出力
echo $count;

こちら、JavascriptのAjax通信で試すと、どうしてもエラーが出てしまいます。なので、Javascriptでどうしても行ないたいという場合は、Google+の時と同じパターンで上記のPHPプログラムを通して読み込んで下さいませ…。

この記事へのコメント

感想、ご指摘などお気軽にお寄せ下さい。「関連記事を書いた」という方はご報告いただければリンクします。

  • コメント

※Twitter、Facebook、はてな、いずれかのアカウントをお持ちの方は、本人認証(ログイン)を行なうことができます。
※本人認証をすることで、書き込みの待ち時間なし、画像アップロード、アイコンなどが利用できます。
※認証時にサービスと連携しますが、名前とアイコン以外の情報を読み込んだり、また書き込みを行なうことはありません。連携で要求する権限は「公開情報の読み取り」のみです。

コメントは、0件です。

記事の更新履歴

  • 記事を公開しました。
    2014/06/15 21:30

ブログの著者について

あらゆ

Yuta Arai(あらゆ)

足立区竹ノ塚在住の1982年生まれ。ウェブとラーメンが大好きです。
info@syncer.jp