デモ サイトで fb login connect を使用しています。次のコードを使用しました。
window.fbAsyncInit = function() {
try{
FB.init({
apiKey: '<MY APP KEY>',
channelUrl : 'www.google.com'
});
FB.getLoginStatus(function(response){
loginHandler();
});
}catch(error){}
};
function loginHandler(success,fail)
{
try{
if(success){
alert('i am if');
FB.api('/me', function(response,fail) {
alert("first name == " + response.first_name + "\n ln === " + response.last_name);
});
}
}catch(error){}
}
$('#login').bind('click', function(response) {
try{
FB.login(loginHandler, {scope: 'email,user_likes'});
}catch(error){}
});
$('#logout').bind('click', function() {
try{
FB.logout(function(response){});
}catch(error){}
});
今私の問題はそのアラートです('i am if'); Facebookに正しい資格情報を渡したかどうかを毎回表示しており、alert("first name == " + response.first_name + "\n ln === " + response.last_name); ユーザーが間違った資格情報を渡すとundefinedが表示され、ユーザーが正しい情報を渡して戻ってくると正しい情報が表示されます。
考えられるオプションの1つは、同様にチェックするif(response.first_name!=undefined){blah blah....}
ことですが、認証をチェックする正しい方法ですか?
光を当ててください....