auth.statusChange não dispara durante o FB.init se o usuário não estiver logado no facebook

Gostaria de saber se alguém encontrou uma solução para o comportamento que estou experimentando.

Tomemos o exemplo do código abaixo:

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

Usando FB.init com status definido como true, essencialmente chamadasgetLoginStatus() de acordo comdocumentação do facebook. No entanto, écomportamento aparentemente pretendido que isso vainão desencadear o eventoauth.statusChange, porque o valor padrão é 'desconhecido',e o valor para 'não conectado' também é 'desconhecido' (embora possa ser conhecido !!)

Portanto, tive que fazer uma ligação paraFB.getLoginStatus() explicitamenteassim como ter o status definido como verdadeiro se eu quiser também responder aos usuários que não estão conectados ao facebook.

O problema é que isso resulta na função sendo chamada duas vezes se o usuário for algo diferente de "desconectado".

Existe uma maneira legal de impedir que isso aconteça? Acho que minha única opção seria chamar uma função diferente para lidar com eventos de alteração de autenticação.

questionAnswers(3)

yourAnswerToTheQuestion