Do You PHP はてな このページをアンテナに追加 RSSフィード Twitter

2007-09-26

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

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

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

インストール

# 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ドキュメント

です。

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

  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とか)を使えば良いだけの話なんですが。。。はてなの方で直してくれないかなぁ。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/shimooka/20070926/1190733504
Connection: close