はてなブックマークAtomAPI用のPerlインターフェースを作ってみた
最近社内のIRCにおいて、URLつきで投稿するとリスト化して管理してくれる
botが作られてました。タグやコメントも管理出来てとてもよく出来ているので
気になったニュースとかを貼って共有するなんて感じで使っています。
ただ、情報の格納先が結局社内のサーバーに置いてしまうので、家で見ようとすると
いったんブラウザで開いてはてぶする必要があります。
出来れば、適当なはてなアカウント作っておいて、
botがそのアカウントのブクマに追加する → 皆でそのアカウントのパーソナルフィードを読む
みたいな感じにしたらいいかなーと妄想してました。
んで、はてぶのAPIのIFを調べたら以外になかったりしました。。。
ということで作ってみました。
http://github.com/masartz/p5-webservice-hatena-bookmark-lite/tree/master
「::Lite」をつけたのは逃げと、コミット直前にnaoyaさんのプロダクトで
こんなものを見つけてしまったため、自重しました。
http://github.com/naoya/perl-hatena-bookmark/tree/master
使い方はSYNOPSISの通りなのですが、
my $bookmark = WebService::Hatena::Bookmark::Lite->new( username => $username, password => $password, ); ### add my $edit_ep = $bookmark->add( url => $url, tag => \@tag_list, comment => $comment, ); ### edit @tag = ( qw/ kaka tete /); $com = 'edit comment'; $bookmark->edit( edit_ep => $edit_ep, tag => \@tag , comment => $com , ); ### delete $bookmark->delete( edit_ep => $edit_ep , );
editとdeleteする時には、addした時の返却値になってるEditURIのエンドポイントを
渡す必要がありますです。
別な方法としては、
my $feed = $bookmark->getFeed();
でXML::Atom::Feedオブジェクト形式でフィードが取れます。
my @entries = $feed->entries;
で各エントリがXML::Atom::Entryオブジェクトの配列で取れるので、該当のエントリに対して
my $edit_ep = $bookmark->entry2edit_ep( $entry );
でEditURIのエンドポイントを取得してください。
という方法で出来るはずです。たぶん。