先日はてなブックマークの API を使って特定の URL のブックマーク数を取得するを書きましたが、その方法だと URL 一つに対してのブックマーク数を取得することができますが、サイト全体のブックマーク数の合計を取得したいとなると全ての URL で取得をして合計をしなければなりません。それは手間なので、ダイレクトに取得できないものかと探したところAPI が用意されていました。
被ブックマーク合計数取得 APIを参照すると、普通の GET リクエストではなく XML-RPC というプロトコルを使用しないと取得できないようです。ここでは XML-RPC を PHP で使うために PEAR のXML_RPC2を使用します。では具体的にこのブログの結果を取得して表示するサンプルコードを示します。<br/ >
1 2 3 4 5 6 7 8 9 10 11 |
<?php include 'XML/RPC2/Client.php'; $options = array( 'prefix' => 'bookmark.' ); $client = XML_RPC2_Client::create('http://b.hatena.ne.jp/xmlrpc', $options); $result = $client->getTotalCount('http://codaholic.org/'); print $result; #「770」と表示されます。返ってくるのは単純な数値のみです。 ?> |
2行目
ライブラリを読み込みます。XML_RPC2からダウンロードしたファイルを解凍すると、下図のように中にいくつかのディレクトリが入っています。その中のうち、XMLというディレクトリだけを取り出して、このPHPが記述されたファイルと同じディレクトリに設置します。
4行目から8行目
XML_RPC2の仕様に従い作って無事に動いているのですが、正直なところこの裏でどのようなことがされているのかは今のところ分かりません。ただ、別のサイトの合計ブックマーク数を取得したい場合は8行目のgetTotalCountメソッドの引数に渡すURLを変更すれば良いです。最終的に$resultには合計数が入っています。