未捕获异常';Google_AuthException';带有消息';无法对令牌';进行json


Uncaught exception 'Google_AuthException' with message 'Could not json decode the token'

我一直在尝试使用Google Mirror API为Google Glass编写示例应用程序。我下载了Google Mirror API的PHP快速入门,并将其部署到由cPanel管理的Apache Web服务器上。我根据Glass Developers网站上发布的指南配置了API密钥。当我转到机器上的URL对应用程序进行身份验证时,我会成功地重定向到谷歌的Oauth2服务,以授权我的谷歌帐户。然而,当我返回网站继续时,我得到了这个错误:

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的帖子,但没有明确的答案。

从堆栈开始,问题似乎出现在/home/fluffy/public_html/glass/util.php中,其中Google_Client->setAccessToken()(第77行)是用NULL而不是预期的JSON响应调用的。

请尝试在那里进行检查(或oauth2callback.php),以确保正确传递响应。

如果您的所有凭据都正确,请重新启动浏览器并再次检查。