Этот вопрос связан с другим моим вопросом: Как узнать, не вышел ли пользователь из Facebook, FB.Event.Subscribe
В этом вопросе я пыталсяполучить обратный звонок, когда пользователи выходят из Facebook.Но поскольку у него пока нет подходящего ответа, я должен попробовать другой путь.Я пытаюсь опросить, чтобы получить статус входа пользователя с помощью javascript, например:
function checkLogin()
{
alert("in");
FB.getLoginStatus(function(response) {
if (response.status == "connected") {
// logged in and connected user, someone you know
alert("ok - 5 seconds has passed");
} else {
// no user session available, someone you dont know
alert("not ok");
}
});
t=checkLogin("timedCount()",5000);
}
Проблема заключается в следующем: функция возвращает правильный результат только при первом вызове .После этого кажется, что результат кэшируется, и я постоянно получаю сообщение «подключен» в ответ, хотя пользователь молча вышел из системы с помощью другой вкладки в браузере.
Это не хорошо, потому чтов это время в Facebook появляется диалоговое окно, в котором пользователю предлагается войти в систему.Но если пользователь отменит его, он все еще может работать с моим приложением (потому что его сеанс с моим сервером приложений еще не истек!).
В документе FB dev говорит, что:
Когда вы вызываете FB.getLoginStatus, может быть сделан HTTP-запрос к www.facebook.com для проверки текущего статуса пользователя.Однако, если FB.getLoginStatus уже был вызван во время этого сеанса браузера, и сеанс был сохранен в файле cookie, HTTP-запрос к facebook.com может не понадобиться
Так что я думаю, что этот эффектвызвано кешированием.Интересно, почему Facebook так делает.
Кто-нибудь знает, как обойти эту проблему?
Спасибо за любую помощь,
Хоанг Лонг