PHPで特定URLのGoogle+の+1数を取得する

PHPで特定URLのGoogle+の+1数を取得する

ブログなどでその記事がどれだけ+1されたのか。通常は公式ボタンを利用しますが、ランキングに利用したりオリジナルデザインボタンを使いたい場合は数値データを取得する必要があります。

Google+の場合はAPIが存在しないため、下記の非公式ライブラリを利用することで、簡単に数値を取得することができます。

+1数を取得してみる

公開されているライブラリのソースコードをコピーして利用します。関数のgplus_shares()に、取得したいURLアドレスを引数で渡せば、数値を取得できます。

//Twitterトップページの+1数を取得する
$url = "https://twitter.com/";
$data = gplus_shares($url);

//ライブラリをコピーしたもの
function gplus_shares($url){
 
    // G+ DATA
    $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);
    return json_decode($result, true);
     
}

取得した$dataの中身は連想配列の形式で様々なデータが含まれています。その内のcountに目的のデータが格納されています。下記はTwitterトップページの例です。

array(1) {
  [0]=>
  array(2) {
    ["id"]=>
    string(1) "p"
    ["result"]=>
    array(5) {
      ["kind"]=>
      string(12) "pos#plusones"
      ["id"]=>
      string(20) "https://twitter.com/"
      ["isSetByViewer"]=>
      bool(false)
      ["metadata"]=>
      array(2) {
        ["type"]=>
        string(3) "URL"
        ["globalCounts"]=>
        array(1) {
		  ["count"]=>
		  float(34903)
        }
      }
      ["abtk"]=>
      string(100) "AEIZW7SlV8YbuyLjN3HTnINU8ZbmEXZ0MohzqPt1BceyEbTQ0N+WnFL3LFQO1R7vmS2FryePyKwccgNc7xdDf3fR48W8CwKAnA=="
    }
  }
}

数値は階層の深いところにあります。アクセスパスは$data[0]['result']['metadata']['globalCounts']['count']です。

$count = $data[0]['result']['metadata']['globalCounts']['count'];
echo $count;

//結果表示
34903

エクスプローラ

PHPで+1数を取得し、オリジナルボタンを表示するサンプルです。フォームに+1数を取得したいURLを入力してみて下さい。

URL:
  • Twilog
  • Boostrap
  • ロケットニュース24
  • Myspace
  • 広島東洋カープ
  • Twitter
  • 株式会社あきんどスシロー
  • 日本郵政
  • 任天堂
  • ブクログ
  • IRORIO
プレビュー
???
調べたURLの+1数は???でした。

参考文献