Можно ли принудительно обновить сеанс Facebook или, альтернативно, вызвать функцию «FB.init» более одного раза в документе.Я не буду вдаваться в подробности того, чего я пытаюсь достичь, поскольку оно довольно затянуто, но я работаю над этим некоторое время, и, безусловно, это необходимо сделать.
У меня естьскрипт, который вызывается каждые 30 секунд и проверяет, вошел ли пользователь в Facebook, это просто достигается с помощью:
window.fbAsyncInit=function(){
// Initialize the Facebook object
FB.init({
appId:"123",
status:true,
cookie:true,
xfbml:true,
oauth:true
});
// Check the Facebook session status every 30 seconds
setTimeout(function(){
// Pass the Facebook object to the welcome function
fb_welcome(FB);
,30000);
};
В функции 'fbWelcome' я проверяю, не вошел ли пользователь в систему.через Facebook, используя функцию getLoginStatus
.В зависимости от ответа я затем изменяю элементы на странице.Однако есть одна ключевая вещь, которую я делаю, чтобы все это пошло не так.
Если пользователь вошел в Facebook, то я отправляю запрос в свой API с помощью ajax, который возвращаетИнформация о пользователях Facebook.Этот API использует PHP для связи с API Facebook.Если пользователь вошел в Facebook при загрузке страницы, проблем не будет.Однако, если пользователь не вошел в Facebook и вошел в Facebook на другой вкладке на моем сайте, сеанс не обновляется, и детали не могут быть доступны, потому что токен доступа и подписанный запрос недействительны.Поэтому мне нужен способ обновить токен доступа и подписанный запрос в сеансе, используя javascript, чтобы убедиться, что они правильно читаются PHP API.
Я почти уверен, что, вызвавфункция FB.init снова, это решит это, поскольку это обновит сессию.Однако я не уверен, что мне нужно вызывать эту функцию более одного раза на страницу.Это разрешено?Будет ли это вообще мешать?
Несколько замечаний:
- Мне известно, что я могу получить информацию о пользователях через Javascript SDK и FB.api,однако я не хочу делать это по определенным причинам
- Я также знаю, что могу передать токен доступа и подписанный запрос в PHP API, но я также не хочу делать это по определенным причинам
Любая помощь высоко ценится