Do You PHP はてブロ

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

PEAR::Services_Hatena_Star作ってみた

何かと話題なはてスタですが、とりあえず付けられたスターの情報を取得するためのPEARパッケージを作ってみました。あ。既存のPEAR::Services_Hatenaとの関連・互換性はありません(^^;

インストールは

# 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のみ実装しています。

とりあえず、これだけあれば

にあるようなサービスも作れる、と。。。というか、これがきっかけ(^^;

追記(2007/07/17 19:38)

なんだかHatenaStar.jsのバージョンが上がったようで。。。APIが変わったのか、現時点でデータが取れなくなっています。。。orz id:yappoさん、ありがとうございます。

追記(2007/07/18 12:56)

おおっ。id:yappoさんのところで新しいのが出てる!

追記(2007/07/18 14:40)

バージョン0.0.2をリリースしました。