Функция обратного вызова входа в систему FB не отвечает, если пользователь уже вошел в систему facebook

Я использую fb connect с помощью js. Это мой код:

<script>
    window.fbAsyncInit = function() {
      FB.init({
        appId      : 'xxxxxxxxxxxxxxxx',
        status     : true, 
        cookie     : true,
        xfbml      : true,
        oauth      : true
      });

      FB.Event.subscribe('auth.login', function(response) {
        obj=response.authResponse;
        token=obj.accessToken;
        setCookie("access_token_fb", token, '2');

        window.location.reload();
      },true);
    };
    (function(d){
       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
       js = d.createElement('script'); js.id = id; js.async = true;
       js.src = "//connect.facebook.net/en_US/all.js";
       d.getElementsByTagName('head')[0].appendChild(js);
     }(document));
  </script>

для входа я использую:

 <div class="fb-login-button" scope="email,user_checkins"  >Login with Facebook</div>

'auth.login' в функции подписки имеет обработчик ответа, он вызывается только тогда, когда пользователь нажимает кнопку fb и еще не вошел в FB, введите его / ее адрес электронной почты и пароль в окне fb. В то время как, если пользователь уже вошел в систему facebook, открывается и закрывается диалоговое окно fb. Затем он не передает управление обработчику ответа. Я где-то читал, что force = "true" позволяет ему обнаруживать изменение статуса и вызывать функцию обратного вызова. Но я не знаю, где добавить силу. Думаю, это должно быть в div входа. Это правда или есть другой подход?

Спасибо за ваше время.

16
задан Hafiz 17 December 2011 в 01:16
поделиться