У меня есть сайт 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.
}
});
});
});
Есть ли что-то не в этом роде? Я не могу понять, как обеспечить получение идентификатора пользователя. Большое спасибо.
Stranger ... Итак, после установки переменной uid, я делаю вызов FB.Facebook.apiClient.users_getInfo(), используя его. В Safari это возвращает null, что вполне понятно, поскольку uid является «None». Но в Firefox, несмотря на то, что uid является «None», он как-то работает, возвращая данные пользователя. Я смущен. –