Неперехваченное исключение «Google_AuthException» с сообщением «Не удалось декодировать токен json»

Я пытался использовать Google Mirror API для программирования примера приложения для Google Glass. Я загрузил PHP Quick Start для Google Mirror API и развернул его на веб-сервере Apache, управляемом cPanel. Я настроил ключи API и тому подобное в соответствии с руководством, размещенным на веб-сайте разработчиков Glass. Когда я перехожу по URL-адресу на своем компьютере для аутентификации приложения, я успешно перенаправляюсь в службу Google Oauth2 для авторизации моей учетной записи Google. Однако, когда я возвращаюсь на сайт, чтобы продолжить, я получаю эту ошибку:

Fatal error: Uncaught exception 'Google_AuthException' with message 'Could not json decode the token' in /home/fluffy/public_html/glass/google-api-php-client/src/auth/Google_OAuth2.php:162 Stack trace: #0 /home/fluffy/public_html/glass/google-api-php-client/src/Google_Client.php(170): Google_OAuth2->setAccessToken(NULL) #1 /home/fluffy/public_html/glass/util.php(77): Google_Client->setAccessToken(NULL) #2 /home/fluffy/public_html/glass/oauth2callback.php(45): bootstrap_new_user() #3 {main} thrown in /home/fluffy/public_html/glass/google-api-php-client/src/auth/Google_OAuth2.php on line 162

Итак, я зашел в сценарий и вывел JSON, который он пытался разобрать, на страницу. Массив JSON, который он выводит:

{ "access_token" : "ya29.1.AADtN_VWpFG9CblS1rWSrxcj1a1arQlIv4Iuu7mQ6UWMp9kRRLpr3tsuxRIDePA3ufvi-Q", "token_type" : "Bearer", "expires_in" : 3600, "id_token" : "eyJhbGciOiJSUzI1NiIsImtpZCI6IjQ3NzZmZWE1ZWRkMzU0OTJlYmNiYWY0N2QzZTQwNWQ5NTEwYzBmYmUifQ.eyJpc3MiOiJhY2NvdW50cy5nb29nbGUuY29tIiwidG9rZW5faGFzaCI6IjRCczhpSGNiSk5qUHlYYm41SndSVFEiLCJhdF9oYXNoIjoiNEJzOGlIY2JKTmpQeVhibjVKd1JUUSIsImNpZCI6IjU1OTc1MjgyNjgzOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsImF6cCI6IjU1OTc1MjgyNjgzOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsImF1ZCI6IjU1OTc1MjgyNjgzOC5hcHBzLmdvb2dsZXVzZXJjb250ZW50LmNvbSIsImlkIjoiMTAyMjUxNzA3OTUyNTQ3MjY3NjEwIiwic3ViIjoiMTAyMjUxNzA3OTUyNTQ3MjY3NjEwIiwiaWF0IjoxMzg3MTYxODk5LCJleHAiOjEzODcxNjU3OTl9.AXsIeC3f0e66ko5o2hxUXrE6LxYnSDXp0CwaSHBQKsd2M4d3g6A-JWeNIVYRTeoXucaFvDlr_XpLEtWeELZ1M8ExI85aWMwI6_xI969te4xX6pLtym2e84PzZGYwMZVmX_imAl4CFB9l5nYrZO7vSelGeXsON474QUvkTbMLTEM", "refresh_token" : "REDACTED" }

Так что я действительно не понимаю. Почему JSON приходит нормально, но скрипт не может его проанализировать? Я видел, как это публиковалось в других местах в Интернете для других API Google, но четкого ответа нет.


person Anthony Jesmok    schedule 16.12.2013    source источник
comment
Ваш первоначальный вопрос включал значение вашего токена обновления. Держите этот токен в секрете. Поскольку он был опубликован, вы, вероятно, захотите перейти на account.google.com и отозвать грант, чтобы отключить токен.   -  person mimming    schedule 20.12.2013


Ответы (2)


Исходя из вашей трассировки стека, проблема возникает в /home/fluffy/public_html/glass/util.php, где Google_Client->setAccessToken() (строка 77) вызывается с NULL вместо ожидаемого ответа JSON.

Попробуйте проверить там (или oauth2callback.php), чтобы убедиться, что вы правильно передаете ответ.

person John C    schedule 13.02.2014

Если все ваши учетные данные верны, перезапустите браузер и проверьте еще раз.

person vinod    schedule 18.07.2015