Я знаю, что даже токен offline_access, полученный из Facebook, может быть недействительным (в случае, если пользователь изменил пароль, например). В этом случае мне нужно поймать заброшенное исключение и предложить пользователю моего сайта снова авторизоваться.Facebook OAuthException, когда токен offline_access недействителен
Так что же такое код ошибки/сообщение в этом случае? Я знаю, что это 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;
}
извините, но это не ответ на мой вопрос. Конечно, я собирался обернуть каждый вызов API в блок try-catch! Вопрос был в том, что является единственным исключением для ловушек для таких проблем аутентификации ... – ArVan