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.

Antworten auf die Frage(3)

Ihre Antwort auf die Frage