2012-04-06 2 views
1

Я пытаюсь получить текущее состояние входа пользователя через яваскрипт SDK, но я получаю следующее сообщение об ошибке:FB.getLoginStatus() вызывается перед вызовом FB.init() ошибка

FB.getLoginStatus() called before calling FB.init()

Вот мой код:

<div id="fb-root"></div> 
<script> 
    window.fbAsyncInit = function() { 
    FB.init({ 
     appId  : '000000000000000000', // App ID 
     status  : true, // check login status 
     cookie  : true, // enable cookies to allow the server to access the session 
     xfbml  : true // parse XFBML 
    }); 

     console.log(FB.getLoginStatus); //THIS DOESN'T WORK!! 

    }; 

    // Load the SDK Asynchronously 
    (function(d){ 
    var js, id = 'facebook-jssdk', ref = d.getElementsByTagName('script')[0]; 
    if (d.getElementById(id)) {return;} 
    js = d.createElement('script'); js.id = id; js.async = true; 
    js.src = "//connect.facebook.net/en_US/all.js"; 
    ref.parentNode.insertBefore(js, ref); 
    }(document)); 
</script> 

Любые идеи?

ответ

1

Похоже, что FB.init не является синхронным вызовом (это означает, что он возвращается до его фактического завершения). Быстрый Google появился этот How to detect when facebook's FB.init is complete

0

У меня был такая же проблема, и решить ее путем удаления #xfbml=1 в импортированной URL:

//connect.facebook.net/en_US/all.js#xfbml=1 

Надеется, что это помогает

0

Вы просто забыли(), чтобы вызвать javascript метод.

console.log(FB.getLoginStatus); 

является

console.log(FB.getLoginStatus()); 
Смежные вопросы