auth.statusChange wird während FB.init nicht ausgelöst, wenn der Benutzer nicht bei Facebook angemeldet ist
Ich habe mich gefragt, ob jemand eine Problemumgehung für das Verhalten gefunden hat, das ich erlebe.
Nehmen Sie das Beispiel des folgenden Codes:
<script>
window.fbAsyncInit = function() {
FB.init({
appId : '[----removed-------]', // App ID
channelUrl : 'http://localhost/channel.html', // Channel File
status : true, // check login status
cookie : true, // enable cookies
xfbml : true // parse XFBML
});
// Additional initialization code here
FB.Event.subscribe('auth.statusChange',fbLoginStatus);
console.log("getloginstatus");
FB.getLoginStatus(fbLoginStatus);
</script>
Wenn Sie FB.init mit dem Status true verwenden, werden im Wesentlichen Aufrufe ausgeführtgetLoginStatus()
lautFacebook-Dokumentation. Wie auch immer es istanscheinend beabsichtigtes Verhalten dass dies wirdnicht Löse das Ereignis ausauth.statusChange
, da der Standardwert "unbekannt" ist,und der Wert für 'nicht eingeloggt' ist auch 'unbekannt' (obwohl es bekannt sein kann !!)
Deshalb musste ich anrufenFB.getLoginStatus()
ausdrücklichebenso gut wie den Status auf true setzen, wenn ich auch auf Benutzer antworten möchte, die nicht bei Facebook angemeldet sind.
Das Problem ist, dass die Funktion zweimal aufgerufen wird, wenn der Benutzer nicht "abgemeldet" ist.
Gibt es eine gute Möglichkeit, dies zu verhindern? Ich denke, meine einzige Option könnte darin bestehen, eine andere Funktion aufzurufen, um Auth Change-Ereignisse zu behandeln.