del.icio.usでcallback

del.icio.usではJSONによるブラウザからの直接フィードインクルードが可能。

http://del.icio.us/help/json

上記ページには、フィードをインクルードする場合は以下のように<script>タグをHTML中に記述する、と書いてある。

<script type="text/javascript" src="http://del.icio.us/feeds/json/stomita?count=10"></script>

<script>タグのsrc属性のURL

http://del.icio.us/feeds/json/stomita?count=10

(stomitaはdel.icio.us id)

から実際に返されるスクリプトの中身はこんなかんじ(改行整形済み)

if(typeof(Delicious) == 'undefined') Delicious = {}; 
Delicious.posts = [
   {"u":"http://practical-scheme.net/trans/beating-the-averages-j.html",
    "d":"Beating the Averages",
    "t":["lisp"]},
   {"u":"http://www.sarugau.org/",
    "d":"Sarugau.org",
    "t":["serverside","javascript","java"]},
   ....
]

しかし実は、Yahoo!(US)のJSON形式のWebサービスと同じように、callbackパラメータを与えることによってJSONデータを任意のJavaScriptコールバック関数にハンドルさせることができる。

src属性のURLを以下のように変更。

http://del.icio.us/feeds/json/stomita?count=10&callback=handleFeeds

返されるデータは次のような感じ(改行整形済み)

handleFeeds([
   {"u":"http://practical-scheme.net/trans/beating-the-averages-j.html",
    "d":"Beating the Averages",
    "t":["lisp"]},
   {"u":"http://www.sarugau.org/",
    "d":"Sarugau.org",
    "t":["serverside","javascript","java"]},
   ....
])

そのままJavaScriptの関数呼び出しになっているので、あとはもとのHTML中にコールバック関数 handleFeeds を適当に定義しておけばよい。

del.icio.usユーザのタグリストをJSONで呼び出し

JSONによるフィードの呼び出し方はヘルプに書いてあるけど、タグリストについてはなんとなくオフィシャルではないっぽい。

http://del.icio.us/feeds/json/tags/stomita

(stomitaはdel.icio.us id)

で、ユーザのタグリストがJSON形式で取り出せる。
もちろんcallbackにも対応。

http://del.icio.us/feeds/json/tags/stomita?callback=handleTags

返ってくる値(改行整形済み)

handleTags({
  "ajax":17,
  "amazon":4,
  "api":13,
  "appliance":1,
  ....
})

(追記)

あるタグで絞り込んでタグリストを取得する場合は、さらにそのタグ名をくっつける

例)
http://del.icio.us/feeds/json/tags/stomita/javascript

またパラメータとして、sortおよびcountが指定できる
sort=freq|alpha(alphaがデフォルト)
count=return_num

例)
http://del.icio.us/feeds/json/tags/stomita?sort=freq&count=10

元ネタ:
http://blogfresh.blogspot.com/2006/01/freshtags-v-05.html#c114113063781958585