web R25をFacebookで積ん読するアプリ「積25(つむ・にじゅーご)」を作りました

はじめてのFacebookアプリです。
積25(つむ・にじゅーご) op Facebook | Facebook

なんとなく、リクルートWebサービスのページを見ていたら、web R25 APIができたとのことなので、作ってみたアプリです。
FacebookのJavascript SDKも気になっていたところだったので、まあその組み合わせでちょいっと。

Mashup Award 6にも応募してみました。

最初につまずいたのは、window.fbAsyncInitのタイミングでした。
どうも、$(document).readyと平行して動いてしまうっぽいので、$(document).ready内でFacebookのJSファイルを動的に参照して、動かすようにしました。

window.fbAsyncInit = function(){
	FB.init({
		appId  : 'your app id',
		status : true,
		cookie : true,
		xfbml  : true
	});

	FB.getLoginStatus(function(res){
		if(! res.session){
			doAuth();
		}else{
			if(!checkParms(res.perms)){
				doAuth();
			}else{
				// 処理
			}
		}
	});
}

$(document).ready(function(){
	var sc = document.createElement("script");
	sc.setAttribute("type", "text/javascript");
	sc.setAttribute("src", "http://connect.facebook.net/en_US/all.js?" + (new Date()).getTime());
	var hd = document.getElementsByTagName('head')[0];
	hd.appendChild(sc);
});

これでうまくいくようになりましたが、Facebook上で動かさないと動かないという残念な・・・(´・ω・`)


あとは・・・ああ、リファレンスが違うのがけっこう困りましたね。web R25 APIの。
検索条件がidとリファレンスに書いてあるのに、実はcodeが正解とか少し悩んでしまいました。
あとは、必須条件が書いていないのに「何かしらは検索条件を指定しなさい」的なエラーに。。。リファレンスに書いておいてほしい。。。


あ、そうそう。
現状、なぜかIEでうまくうごきません。
理由は、「後で読む」でFacebookのノートに書き込むわけですが、そのcallback関数が呼ばれないためです。

FB.api("/me/notes", "post", note, function(res){
	// ... ここにこない。 ...
	if (!res || res.error) {
		errorDlg("ノートに投稿失敗!!");
	}else{
		// うまくいった
	}
});

ただ、HTTPのレスポンスは200で返ってきてるし、投稿もちゃんとできているので、関数が認識されないだとかそういう話だと思うのですが・・・
無名じゃなく、外に宣言しておいてみようかな・・・