at posts/single.html

Flickr プラグイン修正

Flickr の写真に Google Maps の位置情報を簡単にタグに埋め込めるようにするための前準備として、プラグインを少し修正した。

  • Flickr API の認証ができるように Flickr::Request クラスを追加
  • Flickr API からの戻り値を正規表現ではなく REXML で処理するようにした

Flickr::Request クラスは、署名を自動的に生成するようにしている。 たとえば、ユーザのトークンを取得する flickr.auth.getToken を呼び出すときは以下のように使う。

req = Flickr::Request.new(api_key, api_secret)
req['method'] = 'flickr.auth.getToken'
req['frob'] = '407634-7b870e9baff43199'
doc = REXML::Document.new(req.open)
token = doc.elements['//rsp/auth/token'].text

Flickr::Request クラスの open メソッドは以下の URL にアクセスし、トークンを含むXMLファイルを取得している。 必要になる署名 (api_sig) は sigunature メソッドで生成している。

http://flickr.com/services/rest/?api_key=********&frob=407647-179818a9ad0380a7&method=flickr.auth.getToken&api_sig=*********

シンプルなクラスだけど、それなりに使えるかな。

関連する日記