あるサイトに付けれた、はてなブックマーク数をPHPから取得するスクリプトを書いてみました。
APIの詳細については、公式の「はてなブックマーク件数取得API 」を参照してみてください。
なお、PHPスクリプトにはPEARのXML/PRCパッケージを利用しているため、事前にインストールしておく必要があります。
# pear install XML_RPC
とかでインストールできるかもしれません。
被ブックマーク数を取得するPHPスクリプト
<?php
// PEARのXML/RPCパッケージを利用する
require_once("XML/RPC.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
// はてなのAPIのURIをセット
$host = "http://b.hatena.ne.jp";
$xmlrpc_path = "/xmlrpc";
// RPCクライアントのインスタンス生成
$client = new XML_RPC_client( $xmlrpc_path, $host, 80 );
// はてブ数を調べたいサイト
$url = new XML_RPC_Value( 'http://ameblo.jp/itboy/', 'string' );
// RPCメッセージ生成
// そのサイト全体のはてブ数を取得するためにbookmark.getTotalCountメソッドをコール
$message = new XML_RPC_Message('bookmark.getTotalCount', array($url));
// メッセージ送信
$result =$client->send($message, 60);
if (!$result->faultCode()) {
// 成功した場合ははてブ数を取得
$b = $result->value();
echo "hatebu: ". $b->scalarval() . "\n";
} else {
// 失敗した場合はサーバーから返されたメッセージを表示
echo "Fail:" . $result->faultString() . "\n";
}
?>
とても簡単に書けますね。
あるページだけの被ブックマーク数を調べたければ、そのページのURLをXML_RPC_Value に指定し、XML_RPC_Message の中に、はてなブックマークのAPIで指定されているbookmark.getCountを指定すれば取得できます。
実行結果は、こんな感じです。
$ php hatenabookmark.php hatebu: 334
- 参考サイト
PHPを用いたXML-RPCの基礎 @ ISDL Reports
PHPとPEARでXML-RPC @ Suns & Moon Laboratory
関連記事
はてブ数の画像ってどうやって表示してんだろうって疑問に挑んでみた
ImageMagickを使ってコマンドラインからCAPTCHAを作ってみる
Webページをコマンドラインから一発でPDFや画像に変換する
[PHP] DTreeとPHPで作ったWeb RSSリーダー
[PHP]PEARパッケージXML_RSSとHTTP_Requestを使ったWebRSSリーダー