Flickr API を使って photoset の一覧を Ajax で表示するものをつくってみたので、以下、まとめ。

まずは Flickr API を利用するための api key を取得する。

次に API の呼び出し方だけど、Flickr API はリクエストパラメータに "format=json" をつけると、こんな感じに、次のフォーマットで返ってくる

jsonFlickrApi( /* JSON */ )

JSON の前後におまけがついて、関数呼び出しのフォーマットで返ってくる。 これすなわち、そのまま responseText を eval できることを意味するわけで、jsonFlickrApi は Ajax リクエストのコールバック関数というわけだ。 JSON におまけをつけるテクニックを JSONP (JSON with Padding) というらしい。

function photoset_init(){
   var url = "http://tsuyuguchi.com/masaaki/Flickr/flickrjson.cgi";
   var pars = "method=flickr.photosets.getList";
   var myAjax = new Ajax.Request(  /* from prototype.js */
      url, 
      {
         method: 'get', 
         parameters: pars, 
         onComplete: showResponse
      });
}

function showResponse( originalRequest ){
   /* call jsonFlickrApi */
   eval( originalRequest.responseText );
}

function jsonFlickrApi( obj ){
   /* ここにいろいろ処理を書く */
}

Ajax の通信はクロスドメインができないので、同じサーバに Flickr API のプロクシとなる CGI が必要になるが、これはただ単に Flickr API サーバとクロスドメイン通信ができない Javascript との間に立って右から左にリクエストを橋渡ししているだけで、特別な小細工は特に必要ない。ひとつ前のエントリはエラー周りで若干小細工してあるけど、たいした行数ではない。

Flickr 本家による説明によると、 format=json のほかにさらに 2 つのパラメータがあって

nojsoncallback=1   -> {...}
jsoncallback=wooYay   -> wooYay({...});

それぞれ JSON データのみ返すように指定できたり、コールバックの関数名を自分で指定できたりもするようだ。

トラックバック(0)

このブログ記事を参照しているブログ一覧: Flickr API で JSONP

このブログ記事に対するトラックバックURL: http://tsuyuguchi.com/mt/mt-tb.cgi/248

コメントする

最近の画像

謎のオブジェ
単焦点レンズ 30mm F1.4 を買いました
料理が少し楽しくなるかもしれないグッズ
江戸糸あやつり人形
江戸糸あやつり人形
おうち、
新橋青空大判将棋
「天体の回転について」読了
「幼年期の終り」読了
「数学ガール/フェルマーの最終定理」読了

私の本棚

 

自転車走行距離

Flickr Photos

なかのひと

Y!ログール

このサイトについて

あわせて読みたいブログパーツ

2009年1月

        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

アーカイブ

My Update

  • Loading...

その他