はてスタのお気に入りAPIのPEARパッケージを作ってみた
via. はてなのお気に入りユーザーの情報を取得できる「お気に入りAPI」(Favorites API)を公開しました - はてなスター日記
URLを叩くだけで認証も必要ないAPIなのでPEARパッケージにする必要もなさそうなニオイがプンプンしますが、とりあえず作ってみました。
- http://www.doyouphp.jp/pear/Services_Hatena_Favorites-0.0.1.tgz(alpha版:PHP5.2.0以降専用)
インストールは
# pear install -a http://www.doyouphp.jp/pear/Services_Hatena_Favorites-0.0.1.tgz
な感じで。
また、いつもの通り、
- HTTP_Request1.4.1以上が必要
- PHP5.2.x系のみ対応
- 多分PHP5系であれば動作すると思いますが、PHP5.2.4以外は動作未確認
- APIドキュメント
です。
使い方は、ざっと以下の通りです
- Services_Hatena_Favorites_Factoryを使ってサービスインスタンスを取得
- Services_Hatena_Favorites#execute()
- Services_Hatena_Favorites#get()の戻り値(JSON)を適宜変換して利用する
以下、サンプルコードになります。
<?php require_once "Services/Hatena/Favorites/Factory.php"; $username = 'shimooka'; $service = Services_Hatena_Favorites_Factory::getInstance(Services_Hatena_Favorites_Factory::API_DIARY); $service->execute($username); var_dump($service->get()); var_dump($service->getAsArray()); $service = Services_Hatena_Favorites_Factory::getInstance(Services_Hatena_Favorites_Factory::API_ANTENNA); $service->execute($username); var_dump($service->get()); var_dump($service->getAsArray()); $service = Services_Hatena_Favorites_Factory::getInstance(Services_Hatena_Favorites_Factory::API_RSS); $service->execute($username); var_dump($service->get()); var_dump($service->getAsArray()); $service = Services_Hatena_Favorites_Factory::getInstance(Services_Hatena_Favorites_Factory::API_GROUP); $service->execute($username); var_dump($service->get()); var_dump($service->getAsArray()); $service = Services_Hatena_Favorites_Factory::getInstance(Services_Hatena_Favorites_Factory::API_STAR); $service->execute($username); var_dump($service->get()); var_dump($service->getAsArray()); ?>
なお、JSON形式ではなく配列で返すgetAsArrayメソッドも用意してありますが、experimentalな位置づけです。理由は2つ前のエントリを確認してください。
ということで、Services_Hatena_Favorites_Factory::API_DIARYの場合のみ、getAsArray()を実行するとnullが返ってしまいます。まあ、こちらとしては他のJSONパーサ(Services_JSONとか)を使えば良いだけの話なんですが。。。はてなの方で直してくれないかなぁ。