FB.getSession () возвращает ноль - PullRequest
0 голосов
/ 30 апреля 2011

В одном из моих приложений я использую JavaScript-API Facebook на стороне клиента для отслеживания статуса входа пользователя на Facebook.

У меня уже есть пользователь, подключенный к приложению facebook, и пользователь вошел в Facebook.

Теперь, когда я вызываю FB.getSession (), он возвращает null при вызове FB.getLoginStatus () также не дает мне response.session ....

Это поведение отличается в разных браузерах, оно отлично работает в Chrome, но не в Firefox 4. Я удалил куки в Firefox, все еще не работает, как ожидалось.

Является ли доверенным API-интерфейс на стороне клиента или я должен выбрать API-интерфейс на стороне сервера?

код:

window.fbAsyncInit = function() {
    FB.init({
        appId: '0000000000', 
        status: true, 
        cookie: true,
        xfbml: true
    });

    FB.getLoginStatus(function(response) {
      if (response.session) {
        // This block should have been called.
        alert('logged in')
      } else {
        // no user session available, someone you dont know
        alert('not logged in')
      }
    }, true);


    var session = FB.getSession(); //Must not return null...

};

Есть идеи?

Ответы [ 2 ]

0 голосов
/ 19 сентября 2012

Это просто потому, что FB.getSession () не инициализирован.

Вы не можете добавить событие в FB.getLoginStatus, которое запускает функцию FB.getSession () при инициализации Facebook и, таким образом, использует асинхронный подход.

0 голосов
/ 01 мая 2011

Это работало после использования не асинхронного доступа.

Код

<script src="http://connect.facebook.net/en_US/all.js"></script>
<script>
FB.init({
    appId  : '00000000000',
    status : true, // check login status
    cookie : true, // enable cookies to allow the server to access the session
    xfbml  : true  // parse XFBML
});


$(function(){
    //var session = FB.getSession();

    alert(FB.getSession());
})

</script>

Не знаю, почему это не работает с асинхронным подходом.

...