Поэтому у меня есть приложение, над которым я работаю. У меня есть локальная копия в XAMPP и живая версия на сервере (конечно). Все работает нормально с обоими, однако, когда я выхожу из одного, я получаю эту ошибку:
Неустранимая ошибка: исключить исключение «Google_ServiceException» с сообщением «Ошибка вызова GET (401)« Недействительные учетные данные »в C: \ localhost \ htdocs \ up \ api \ src \ io \ Google_REST.php: 66 Трассировка стека: # 0 C: \ localhost \ htdocs \ up \ api \ src \ io \ Google_REST.php (36): Google_REST :: decodeHttpResponse (объект (Google_HttpRequest)) # 1 C: \ localhost \ htdocs \ up \ api \ src \ service \ Google_ServiceResource.php (186 ): Google_REST :: execute (Object (Google_HttpRequest)) # 2 C: \ localhost \ htdocs \ up \ api \ src \ contrib \ Google_Oauth2Service.php (36): Google_ServiceResource -> __ call ('get', Array) # 3 C : \ localhost \ htdocs \ up \ src \ user.php (63): Google_UserinfoServiceResource-> get () # 4 C: \ localhost \ htdocs \ up \ includes \ authorizedHeader.php (5): require ('C: \ localhost \ ht … ') # 5 C: \ localhost \ htdocs \ up \ profile.php (1): include (' C: \ localhost \ ht … ') # 6 {main} брошен в C: \ localhost \ htdocs \ up \ api \ src \ io \ Google_REST.php в строке 66
Я пробовал исправлять, очищать кеш и т. Д., И я все еще получаю ошибку. Однако, когда я закрываю браузер и снова открываю его, все снова появляется, как будто ничего не произошло.
Кто-нибудь имел эту проблему / разрешил ее?
Совет очень ценится.
Лучший,
Тайлер
Пройдя несколько потоков SO, я наткнулся на этот фрагмент:
if($client->isAccessTokenExpired()) { $client->refreshToken('refresh-token'); }
Я заметил, что без этого, когда токен истечет, я получу ошибку. После того, как я ввел этот оператор «If», я заметил, что токен обновления работал после того, как токен истек.
Я также пробовал это, и он также работает:
if ($client->isAccessTokenExpired()) { session_destroy(); header('Location: login.php'); }
Это перенаправляет пользователя на страницу входа после того, как токен истек. Когда пользователь снова войдет в систему, токен доступа снова запустится. Это, вероятно, не самый практичный способ, но я просто делюсь тем, что сработало для меня.
Надеюсь, это поможет кому-то, кто может столкнуться с этой проблемой.