2

在 PHP 中使用 google drive API。首先,我请求一个 Auth url 并将用户发送到该 url。用户授权并被重定向到我的 url,授权代码在查询字符串中,如预期的那样。接下来,我调用$client->authorize()并传入查询字符串中的代码。我收到以下错误:

Uncaught exception 'Google_AuthException' with message 'Error fetching OAuth2 access token, message: 'invalid_grant'' in
/home/a5874817/public_html/custom/google/src/auth/Google_OAuth2.php:113
Stack trace:
#0 /home/a5874817/public_html/custom/google/src/Google_Client.php(131): Google_OAuth2->authenticate(Array, '4/jN5JfD_ejozBj...')
#1 /home/a5874817/public_html/custom/docs_reply.php(10): Google_Client->authenticate('4/jN5JfD_ejozBj...')
#2 {main}
thrown in /home/a5874817/public_html/custom/google/src/auth/Google_OAuth2.php on line 113

这个账号之前已经授权过这个app,但是auth url一直包含access_type=online,而且是一个多小时前,所以access token应该已经过期了。这个错误的具体原因可能是什么?

4

2 回答 2

0

由于您只有在线访问权限,因此您将无法在新的访问令牌用完时刷新它。

如果您想要永久访问,请要求 access_type=offline,并确保存储刷新令牌以供以后使用。

于 2013-01-10T23:23:59.427 回答
0

好吧,问题已经消失了,但我不记得我所做的许多更改中的哪一个解决了它。我认为问题在于我的身份验证网址中的 access_type 类型错误,或者客户端设置错误。如果其他人有类似的问题,我建议确保范围正确并实际阅读所有 auth url 以确保它有意义。

于 2013-03-25T00:30:11.503 回答