必要になったので実装した。twitter、facebookは専用のWebAPIが用意されているけど、Google+に関してはいいねボタンから無理矢理に数字を抜き出した感じである。いやまぁ、ほぼコピペなんですが(転載元さんありがとう)。
Google+についてはPHPのOpenSSLが有効になっている必要があります。phpinfo();などで調べて有効にしてください。
しかし、OpenSSLの代替案はLibreSSLになるのかな? 載せ替えている場合、PHPのOpenSSLライブラリは対応しているんだろうか? 使えているから多分対応しているんだろうけど、そこまでは調べていない。
実装は下記になります。
<?php class SocialMediaCount { public function __construct() { } public function getFacebookCount($url) { $json = json_decode(file_get_contents('http://graph.facebook.com/?id=' .urlencode($url))); if(isset($json->{'shares'})) { $param = $json->{'shares'}; } else { $param = 0; } return $param; } public function getTwitterCount($url) { $json = json_decode(file_get_contents('http://urls.api.twitter.com/1/urls/count.json?url=' .urlencode($url))); return $json->{'count'}; } public function getGooglePlusCount($url) { // 要OpenSSL $plus = file_get_contents('https://apis.google.com/_/+1/fastbutton?url=' .urlencode($url)); // 正規表現でカウント数のところだけを抽出 preg_match( '/\[2,([0-9.]+),\[/', $plus, $count ); return $count[1]; } } $cntObj = new SocialMediaCount(); $url = 'http://www.google.co.jp'; echo $cntObj->getFacebookCount($url); echo "<br />"; echo $cntObj->getTwitterCount($url); echo "<br />"; echo $cntObj->getGooglePlusCount($url);
■参照サイト様
facebookのAPIで【いいね】数を取得する最新の方法は何なんだろう?とふと調べた話 | カミタニ ブログ
特定のURLの、ツイート数・いいね数を取得するAPI - Qiita
Google+のカウント数を取得するために色々試した結果がこちら