2013-03-02 2 views
0

У меня эта ошибка, но не всегда. (Я использую PHP SDK, последняя версия). Если я зарегистрировался в facebook, и я попытаюсь зарегистрироваться и войти в систему, то приложение скажет, что все в порядке! Также, если я не зашел в facebook, приложение перенаправляет меня на URL-адрес для входа, и здесь все в порядке.OAuthException: токен доступа должен использоваться для запроса информации о текущем пользователе.

Но иногда приложение говорит об этом исключении: OAuthException: токен доступа должен использоваться для запроса информации о текущем пользователе. и сценарий перенаправления пользователя на loginUrl с петлевой редиректа (потому что маркер доступа не является действительным и пользователь должен всегда loginUrl)

В Сети некоторые говорят, что Facebook создать дублировать из маркера доступа и то токен доступа php sdk не равен = facebook.

Для исправления пользователь должен удаляет файлы cookie, как я могу это исправить?

Большое спасибо за ответ, если код нужен, ответьте, и я опубликую его, у вас будет хороший день! :)

ответ

1

Попытайтесь уничтожить сеанс Facebook, а затем перенаправить пользователя в URI входа, если вы получили эту ошибку, таким образом вы получите новый токен доступа.

Примечание: токен доступа истекает после очень короткого замыкания, вы можете получить токены с живым доступом. Последние PHP SDK содержит публичную функцию под названием: setExtendedAccessToken()

вы можете вызвать эту функцию для автоматического обмена 2-3 часа живого маркера доступа для доступа к 60 дней лексем

Например:

try { 
     $user = $this->facebooknew->api('/me'); 
     $this->facebooknew->setExtendedAccessToken(); 
     $access_token = $this->facebooknew->getAccessToken(); 
} 
catch(FacebookApiException $e){ 
     $this->facebooknew->destroySession(); 
     header('Location: ' . $this->facebooknew->getLoginUrl($params)); 
     //echo $e; 
} 
+0

это работает для меня :) –

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

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