【问题标题】:Getting new accesstoken using the refreshtoken already retrieved in googledrive api使用已在 google drive api 中检索到的刷新令牌获取新的访问令牌
【发布时间】:2012-08-29 10:54:31
【问题描述】:

我正在使用带有 php 的 Gooogledrive Api。使用它我已经从凭据部分检索了刷新令牌。访问令牌在 3600 秒后过期。我的问题是如何从这个刷新令牌中获取新的访问令牌。我使用了中给出的方法Google php客户端库。我调用了apiclient的refreshtoken('refreshtoke')函数。我的代码如下

$client = new apiClient();
$client->setClientId('my-client-id');
$client->setClientSecret('my client-secret-key');
$client->setRedirectUri('my redirect uri');



$client->refreshToken('MY-retrieved-refresh-token');

但我收到以下错误:- 未捕获的异常 'apiAuthException' 带有消息 '刷新 OAuth2 令牌时出错,消息:'{ "error" : "invalid_grant" }.**

请帮助我。一切正常。但是访问令牌在 3600 秒后过期并且不刷新

【问题讨论】:

  • 您是否设置了访问和刷新令牌?我没有看到 $client->SetAccessToken($tokens) 行,其中 $tokens 将是 jSON 中的访问和刷新令牌。
  • 谢谢vicrabb。我明白了。
  • 是那个问题还是你还有问题?
  • 嗨@vicrabb,我遇到了同样的问题,你能帮我举个例子吗,网上有很多东西,但没有一个是清楚的。非常感谢提前!
  • 当需要刷新token时,需要进行设置。如果您没有放置 $client->SetAccessToken($tokens) 行(使用 $tokens 在 jSON 中保存您的访问和刷新令牌),则您没有授权来刷新它们。我没有示例,因为我不使用 refreshToken() 函数。

标签: php google-drive-api


【解决方案1】:

//在这行代码之后

 $client->refreshToken('MY-retrieved-refresh-token');

//这样做

 $token = $client->getAccessToken(); 

// 这将为您提供 json 编码字符串,该字符串将具有访问权限、刷新令牌和承载等。

【讨论】:

  • 哦,我的....在调试了这个问题将近一个月后,我把这两行倒过来了。切换它们之后,现在一切正常,无需在每次访问令牌过期时重新进行身份验证。非常感谢您发布此 Josh。
猜你喜欢
  • 2020-12-11
  • 2014-07-15
  • 2013-06-14
  • 2015-11-26
  • 2019-06-29
  • 2015-07-19
  • 2012-10-26
  • 2015-01-08
  • 1970-01-01
相关资源
最近更新 更多