Flickrの検索APIでJSONが指定できるわけだが
通常はXMLだけど、format=jsonでJSON形式で結果を出力できます(XMLをパースして取り出すは非常に面倒)。
しかし、この機能は現在のところドキュメントには載っていないようです。
PerlのモジュールにFlickr::APIがあります。
しかしこれがXMLが返ってくるを前提に書かれててJSONが返ってきた場合にうまく処理してくれない。
#これだと動かない my $request = new Flickr::API::Request({ 'method' => 'flickr.photos.getrecent', 'args' => {tag=>'dog','format'=>'json'}, });
ツーわけでこんな感じにcontent-typeを見てxmlでなければそのままチェックせずに返すようにしてみました。
--- Flickr/API.pm 2007-10-18 22:18:58.000000000 +0900 *************** *** 96,101 **** --- 96,105 ---- return $response; } + if ($response->header('Content_Type') =~ /text?/(?:plain|json)/){ + return $response; + } + my $tree = XML::Parser::Lite::Tree::instance()->parse($response->{_content}); my $rsp_node = $self->_find_tag($tree->{children});
Flickr::APIって中の人が作ってるんじゃなかったっけ??