HatenaのIDが抜ける件の分析@2ステップで抜ける!

http://blog.isocchi.com/2008/09/hatena.html
すげー。そんなことできるんだー。はてなgeekすげえええ
と、思って、ソースを見て調査してみたんだけど、意外とめっさ簡単なロジックでびっくり。w

1.GET:投げる。entries.jsonにリクエスト。RKSパラメーター取得。

http://s.hatena.ne.jp/entries.jsonにGET

{"rks":"***********************","can_comment":0,"entries":[]}

jsonで返ってくる。こんなかの、[RKS]パラメータを記録。

2:GET:もっかい投げる。star.add.jsonにリクエスト。

1.で取得した[RKS]パラメータをひっつけて、再度GETする。

http://s.hatena.ne.jp/star.add.json?uri=http://hoge.jp/&rks=***************************

そーすっと、

{"quote":"","name":"satoru_net"}

みたいのがjsonで返ってきて、hatena_idげっと。
この仕組みは楽しいなあ。はてなユーザ向けサービスがサクサク作れそうだ。
というか、これってもともと、そういうのを想定されて作られてる気もしなくもない。

サンプルソース

上記、手順を再現したソース。
http://kokkuri.jp/hatena/

function $(id){
 return document.getElementById(id);
}
window.onload = request1;

function request1(){
 var uri = 'http://s.hatena.ne.jp/entries.json?callback=';
 new JSONLoader({callback:request2,config :[{ uri: uri }]}).load();
}

function request2(results){
 var rks = results.rks;
 var uri = "http://s.hatena.ne.jp/star.add.json?uri=http://hoge.jp/&rks=" + rks + "&callback=";
 new JSONLoader({callback:result,config :[{ uri: uri }]}).load()
}

function result(results){
 $("hatena").innerHTML = ("<h1>Hello " + (results.name ? results.name : "Guest") + "</h1>");
}

ちなみに、JSON取得部分は↓を参照。
http://muumoo.jp/news/2007/05/30/0jsonloader.html