2012-06-07 3 views
0

У меня проблема с Facebook Войти на мою страницу. Сначала я попробовал его только с FB.Login, но потом получил следующее сообщение: «FB.login() вызывается, когда пользователь уже подключен».Facebook Войти бесконечный цикл

Итак, я добавил FB.getLoginStatus. Но теперь он задерживает меня в бесконечном цикле. Даже если я зарегистрирован (в моей системе) и без меня нажимает кнопку FB-Connect.

Как я могу достичь этого, чтобы не входить в систему, пока не нажму кнопку FB-connect?

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 

window.fbAsyncInit = function() { 
     FB.init({ 
     appId  : "198866780209581", // App ID 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true, 
     }); 
    var login = false; 

FB.getLoginStatus(function(response) { 
    if (response.status === 'connected') { 
     console.log('connected'); 
     login=true; 
     $.ajax({ 
       type: "POST", 
       url: "/?eID=login&modus=facebook&fb-login=1", 
       data: $(this).serialize(), 
       success: function(msg) { 
       console.log("LOGIN"); 
       window.location.reload(); 
       } 
      }) 
     var uid = response.authResponse.userID; 
     var accessToken = response.authResponse.accessToken; 
    } 
    else{ 
     FB.login(function(response) { 
     if (response.authResponse) { 
     console.log('Welcome! Fetching your information.... '); 
     FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     if(login===false) 
     { 
      alert('nicht connected'); 
     } 
     }); 
     } else { 
     console.log('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope: 'email'}); 
    }}); 
// Additional initialization code here 
}; 

</script> 
+0

делает 'если (response.status === 'подключен')' никогда не бывает –

+0

это происходит? я вошел в систему, но он обновляет страницу и делает то же самое мгновенно. но я нашел решение. – MrTouch

ответ

0

Решение было изменить функцию щелчка, как это:.

$ ("Fb-входа кнопку ") жить (" щелчок", функция() {

}

Мой окончательный код выглядит следующим образом:

<div id="fb-root"></div> 
<script>(function(d, s, id) { 
    var js, fjs = d.getElementsByTagName(s)[0]; 
    if (d.getElementById(id)) return; 
    js = d.createElement(s); js.id = id; 
    js.src = "//connect.facebook.net/fb_LT/all.js#xfbml=1&appId=198866780209581"; 
    fjs.parentNode.insertBefore(js, fjs); 
}(document, 'script', 'facebook-jssdk')); 
window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : "198866780209581", // App ID 
     status  : true, 
     cookie  : true, 
     xfbml  : true, 
     oauth  : true, 
    }); 
    var login = false; 
    $(".fb-login-button").live("click", function() { 
FB.getLoginStatus(function(response) { 
alert('hier 1'); 
    if (response.status === 'connected') { 
alert('connected'); 
     console.log('connected'); 
     login=true; 
     $.ajax({ 
       type: "POST", 
       url: "/?eID=login&modus=facebook&fb-login=1", 
       data: $(this).serialize(), 
       success: function(msg) { 
       console.log("LOGIN"); 
       window.location.reload(); 
       } 
      }) 
     var uid = response.authResponse.userID; 
     var accessToken = response.authResponse.accessToken; 
    } 
    else{ 
     alert('im else'); 
     FB.login(function(response) { 
     if (response.authResponse) { 
     console.log('Welcome! Fetching your information.... '); 
     FB.api('/me', function(response) { 
     console.log('Good to see you, ' + response.name + '.'); 
     if(login===false) 
     { 
      alert('nicht connected'); 
     } 
     }); 
     } else { 
     console.log('User cancelled login or did not fully authorize.'); 
     } 
    }, {scope: 'email'}); 
    }}); 
}); 
// Additional initialization code here 
}; 
Смежные вопросы