OAuthException: для запроса информации о текущем пользователе необходимо использовать токен активного доступа.

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

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

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

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

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


person Giuseppe Simeone    schedule 02.03.2013    source источник


Ответы (1)


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

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

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

Eg:

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;
}
person Hamza    schedule 16.06.2013