いくつも関数が用意されているのですが、ログインのために開いたWindowが自動で閉じません。
そのため、白いブランク画面が表示されたままで遷移が止まってしまいます。
ログインは、window.locationとリダイレクトURLを自前設定することで、FBログインののち、用意している画面にリダイレクトさせることができます。
サンプルコード
login
window.fbAsyncInit = function() { var stat = ""; var hostUrl = "http://foo.bar/login.html"; var appId = "xxxxxxxxxxxxxxx"; var permission = "user_about_me,user_photos,user_birthday,user_location"; // init the FB JS SDK FB.init({ appId : appId, // App ID from the App Dashboard status : true, // check the login status upon init? cookie : true, // set sessions cookies to allow your server to access the session? xfbml : true // parse XFBML tags on this page? }); // Additional initialization code such as adding Event Listeners goes here FB.getLoginStatus(function(resp){ if(resp.status === 'connected'){ console.log("already login"); getData(); stat = resp.status; $("#facebookLogin").text("logout"); }else if(resp.status === 'not_authorized'){ console.log("noAuth"); }else{ console.log("noLogin"); }; }); function getData(){ FB.api("/me/", function(resp){ console.log(resp); }); } $("#facebookLogin").click(function(){ console.log("click"); if(stat === "connected"){ console.log("connect"); FB.logout(function(response) { $("#facebookLogin").text("login"); stat = ""; }); }else{ console.log("not connect"); window.location = encodeURI("https://m.facebook.com/dialog/oauth?client_id="+appId+"&redirect_uri="+hostUrl+"&response_type=token&scope="+permission); } }); }; (function(d, debug){ var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; if (d.getElementById(id)) {return;} js = d.createElement('script'); js.id = id; js.async = true; js.src = "//connect.facebook.net/ja_JP/all" + (debug ? "/debug" : "") + ".js"; ref.parentNode.insertBefore(js, ref); }(document, false));
参考
JavaScript SDK