2010-04-09 1 views
0

У меня есть сайт Facebook Connect с использованием Javascript API. Я не использую теги FBML. Он работал нормально до двух дней назад, и теперь у меня есть проблема с перезагрузкой страницы во время входа пользователя.Facebook Connect Javascript API не поддерживает состояние подключения после перезагрузки страницы

Пользователь может войти в систему в порядке, и я могу получить идентификатор пользователя Facebook. Они могут обновить страницу, и они все еще вошли в систему (и я все еще получаю идентификатор). Но если они снова обновляют страницу (и впоследствии), то FB.Connect.get_loggedInUser() всегда возвращает «Нет», а не идентификатор Facebook, хотя FB.Connect.get_status(). WaitUntilReady() сказал, что они вошел в систему.

Вот мой базовый код ... может ли кто-нибудь увидеть что-то не так?

FB_RequireFeatures(['Api'], function() { 
    FB.init('MY_API_KEY', '/xd_receiver.htm', {}); 

    FB.ensureInit(function() { 
     FB.Connect.get_status().waitUntilReady(function(status) { 
      switch (status) { 
       case FB.ConnectState.connected: 
        FB.Connect.requireSession(function() { 
         if (FB.Connect.get_loggedInUser()) { 
          var uid = FB.Connect.get_loggedInUser(); 
          // Some more stuff here with the user's ID, displaying info in the page, etc. 
         } 
        } 
        break; 
       case FB.ConnectState.appNotAuthorized: 
       case FB.ConnectState.userNotLoggedIn: 
        // Display FB Connect button in page. 
      } 
     }); 
    }); 
}); 

Есть ли что-то не в этом роде? Я не могу понять, как обеспечить получение идентификатора пользователя. Большое спасибо.

+0

Stranger ... Итак, после установки переменной uid, я делаю вызов FB.Facebook.apiClient.users_getInfo(), используя его. В Safari это возвращает null, что вполне понятно, поскольку uid является «None». Но в Firefox, несмотря на то, что uid является «None», он как-то работает, возвращая данные пользователя. Я смущен. –

ответ

0

Итак, после долгих испытаний с различными приложениями и доменами и ... похоже, что существует некоторый конфликт между кодом JavaScript Facebook и некоторым кодом pyFacebook в исходном тексте Django. Некоторая путаница между материалами сеансов (еще не выяснена) вызывала у Safari ошибки. Итак, мы не знаем решения, но приведенный выше код JavaScript должен работать отлично.

Смежные вопросы