特定サイトの被はてなブックマーク数を取得するPHPスクリプト | A Day In The Boy's Life

A Day In The Boy's Life

とあるエンジニアのとある1日のつぶやき。

あるサイトに付けれた、はてなブックマーク数を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