auth.statusChange nie uruchamia się podczas FB.init, jeśli użytkownik nie jest zalogowany na Facebooku

Zastanawiałem się, czy ktoś znalazł obejście dla zachowania, którego doświadczam.

Weź przykład z poniższego kodu:

<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>

Używanie FB.init ze statusem ustawionym na true, zasadniczo wywołujegetLoginStatus()&nbsp;wedługdokumentacja na Facebooku. Jednak tak jestnajwyraźniej zamierzone zachowanie&nbsp;to będzienie&nbsp;wywołać zdarzenieauth.statusChange, ponieważ domyślna wartość to „nieznany”,i&nbsp;wartość „niezalogowany” jest również „nieznana” (chociaż może być znana!)

Dlatego musiałem zadzwonić doFB.getLoginStatus()&nbsp;jawniejak również&nbsp;mając status ustawiony na true, jeśli chcę również odpowiedzieć użytkownikom, którzy nie są zalogowani na facebooku.

Problem polega na tym, że funkcja jest wywoływana dwukrotnie, jeśli użytkownik jest czymś innym niż „wylogowany”.

Czy istnieje dobry sposób na powstrzymanie tego zjawiska? Myślę, że moją jedyną opcją może być wywołanie innej funkcji do obsługi zdarzeń zmiany autoryzacji ..