Я знаю, что даже токен offline_access, полученный из Facebook, может быть недействительным (например, если пользователь сменил пароль).В этом случае мне нужно перехватить выброшенное исключение и предложить пользователю моего сайта снова авторизоваться.
Так какой же точный код ошибки / сообщения выдается в этом случае?Я знаю, что это OAuthException
, но не смог получить код.Невозможно использовать только тип, так как есть много других OAuthException
-s.
Мой план: изменить base_facebook.php
и добавить код обработки регистра здесь:
protected function throwAPIException($result) {
$e = new FacebookApiException($result);
switch ($e->getType()) {
// OAuth 2.0 Draft 00 style
case 'OAuthException':
// OAuth 2.0 Draft 10 style
/*
* Need to add an appropriate case here.
*/
case 'invalid_token':
$message = $e->getMessage();
if ((strpos($message, 'Error validating access token') !== false) ||
(strpos($message, 'Invalid OAuth access token') !== false)) {
$this->setAccessToken(null);
$this->user = 0;
$this->clearAllPersistentData();
}
}
throw $e;
}