PEAR::Services_Hatena_Star作ってみた
何かと話題なはてスタですが、とりあえず付けられたスターの情報を取得するためのPEARパッケージを作ってみました。あ。既存のPEAR::Services_Hatenaとの関連・互換性はありません(^^;
- Services_Hatena_Star-0.0.1.tgz(alpha版:PHP5.2.0以降専用)
インストールは
# pear install -a http://www.doyouphp.jp/pear/Services_Hatena_Star-0.0.1.tgz
な感じで。HTTP_Request1.4.1以上が必要になります。なお、JSON拡張を使いますので、PHP5.2.x系のみ対応としています(確認が面倒なので。。。)。PECL::jsonを使ってもいけると思いますが未確認です。
また、APIドキュメントも併せて用意しました。
ざっとした使い方は、次のような感じです。
<?php require_once "Services/Hatena/Star.php"; $url = 'http://your.blog.com/path/to/entry'; /** * インスタンスを作成 */ $obj = new Services_Hatena_Star($url); /** * スターを付けたidを配列で取得する */ $entry = $obj->execute(); var_dump($entry->getStarsAsArray()); /** * 最初と最期にスターを付けたidをそれぞれ取得する */ $obj->setRequestMode(Services_Hatena_Star::REQUEST_ENTRIES); $entries = $obj->execute(); var_dump($entries->getFirst()); var_dump($entries->getLast());
また、Services_Hatena_Star#executeメソッドの戻り値はServices_Hatena_Star_Entryインターフェースを実装したクラスになります。これらのクラスを作る必要はなかったんですが、デコードされたJSONデータの構造がちょっとゴチャゴチャしてたので、ざっくり作ってみました。
はてなスターからはまだAPIが公開されていませんが、はてなスターを外部ブログに貼り付けるための方法2 - はてなスター日記にあるとおり、技術的な情報はHatenaStar.jsにあります。このHatenaStar.jsを読んでいくと、JSONでデータをやりとりしていることが分かります。PEAR::Services_Hatena_Starは、このAPIを叩いてJSON形式のデータを取得しています。ver.0.0.1では
に対するAPIのみ実装しています。
とりあえず、これだけあれば
にあるようなサービスも作れる、と。。。というか、これがきっかけ(^^;