2012-07-02 2 views
2

У меня есть кнопка входа в систему Facebook с событием onclick.Facebook Javascript sdk, нужно нажать кнопку входа дважды

<fb:login-button scope="email, user_about_me, user_birthday" onclick="login()">Login with Facebook</fb:login-button> 

код, если вы щелкните по нему:

function login(){ 
FB.getLoginStatus(function(response) { 
    if (response.status === "connected") { 
     FB.api({ 
      method: 'fql.query', 
      query: 'SELECT name, email, pic_square FROM user WHERE uid=me()' 
       }, 
     function(response) { 
      var check = $.get("includes/facebook_login.php", {command:response[0].email, commandP:response[0].pic_square}, //check if users exist with some selects and create sessions 
       function(data){ 
        if(data == 1){ //on facebook_login.php echo 1 if user exists in our db. if so, redirect. 
         FB.Dialog.remove(FB.Dialog._active); 
         window.location="wishlist.php"; 
        } 
        else if(data == 0){ 
         $("#fb_error").dialog("open"); 
         } 
        }); 
       } 
      ); 
     } 
}, true); 

}

код запускает логин Facebook без проблем. Но если этот код будет выполнен, он не перенаправит меня на следующую страницу (wishlist.php). Мне нужно снова нажать кнопку входа в систему Facebook, а затем перенаправить меня. Что я делаю неправильно?

ответ

0

Что я делаю неправильно?

Вы предполагаете кнопку входа в систему осуществляется с помощью логина немедленно, что оно не. Таким образом, ваша функция login вызывается до того, как логин действительно состоялся.

Мое предложение было бы: Просто бросить <fb:login-button> за борт полностью реализовать FB.login, и вызвать его нажатием кнопки самостоятельно ...