Ich habe meine SDK eingerichtet und die Schaltfläche feuert die checkLoginState
Funktion, aber die FB.login wird nicht aufgerufen. Ich benutze die neueste Version (v2.9). Ich habe auch versucht, 2.8 zu verwenden.FB.login() wird nicht aufgerufen
Ich vermute, es hat etwas damit zu tun, asynchron zu sein, aber ich kann nicht herausfinden, was als nächstes zu tun ist.
Der Code:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : 'xxxxxxxxxxx',
status : true,
cookie : true,
xfbml : true,
version : 'v2.8'
});
};
(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/en_US/sdk.js";
fjs.parentNode.insertBefore(js, fjs);
}(document, 'script', 'facebook-jssdk'));
</script>
<fb:login-button onlogin="checkLoginState();" show-faces="false" scope="email,public_profile" width="400"></fb:login-button>
<script type='text/javascript'>
function checkLoginState() {
FB.getLoginStatus(function(response) {
statusChangeCallback(response);
});
}
function statusChangeCallback(response) {
if (response.status !== 'connected'){
Facebook_login();
}
else{
console.log(response);
}
}
function Facebook_login() {
FB.login(function (response) { <--- debugger comes here
if (response.status === 'connected') { <----- but not here :-(
//do stuff
}
});
}
Was ist "Antwort" in 'FB.login'? Probieren Sie es mit '==' anstelle von '==='. –
@JayGould Antwort ist "unbekannt" – rory
Die Login-Schaltfläche führt die Anmeldung selbst aus, Sie müssen FB.login nicht selbst aufrufen, wenn Sie diese Schaltfläche verwenden. Und wie Sie es callen, wird es innerhalb der Callback-Funktion von asynchronen Methoden höchstwahrscheinlich durch den Popup-Blocker des Browsers blockiert. – CBroe