Do You PHP はてブロ

Do You PHPはてなからはてブロに移動しました

はてスタのお気に入りAPIのPEARパッケージを作ってみた

via. はてなのお気に入りユーザーの情報を取得できる「お気に入りAPI」(Favorites API)を公開しました - はてなスター日記

URLを叩くだけで認証も必要ないAPIなのでPEARパッケージにする必要もなさそうなニオイがプンプンしますが、とりあえず作ってみました。

インストールは

# pear install -a http://www.doyouphp.jp/pear/Services_Hatena_Favorites-0.0.1.tgz

な感じで。
また、いつもの通り、

です。

使い方は、ざっと以下の通りです

  1. Services_Hatena_Favorites_Factoryを使ってサービスインスタンスを取得
  2. Services_Hatena_Favorites#execute()
  3. 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とか)を使えば良いだけの話なんですが。。。はてなの方で直してくれないかなぁ。