当前位置: 首页 > 知识库问答 >
问题:

无法获得google drive(google API v2)的刷新令牌

李利
2023-03-14

试图获取我的应用程序访问谷歌驱动器的刷新令牌。

我实现了指南中的所有步骤:

> https://accounts.google.com/o/oauth2/auth?scope=https%3A%2F%2Fwww.googleapis.com%2Fauth%2Fdrive.file&respon
> se_type=code&client_id=...&redirect_uri=http%3A%2F%2Fl
> ocalhost&approval_prompt=force

将get代码放入getTocket,总是得到只包含access_token而不包含refresh_token的响应:

{ access_token: '...',
  token_type: 'Bearer',
  expires_in: 3600 }

会有什么问题?

我使用alredy客户端(clientId)访问youtube API(v2),在那里我得到了刷新令牌。我试图创建另一个clientId,但仍然无法获得refresh令牌。

我试图使用刷新令牌,我使用的youtuve API与谷歌驱动器,但它似乎不起作用。=(

共有1个答案

钱飞翼
2023-03-14

我在URL请求中添加了“&access_type=offline”,它工作了。

 类似资料:
  • 我想根据保存在数据库中的“刷新令牌”获得一个新的“访问令牌”。 请求{“error”:“invalid_grant”} 我在php脚本中使用相同的CLIENT_ID、CLIENT_SECRET和“refresh token”,在“访问令牌”过期时,我设法使用“refresh token”获得新的“访问令牌”。 我基于javadoc.google-oauth-java-client编写了代码。 UP

  • 下面的代码使用Google oauth2机制登录用户。我们需要在用户离线时处理用户日历的更新,所以我们最终需要“刷新令牌”。grantOfflineAccess()的结果是否返回刷新令牌(在下面,我可以看到response.code包含一个可能是刷新令牌的值)? 我如何获得一个刷新令牌,可以用来(服务器端)创建新的访问键,以便离线访问用户的谷歌日历?

  • 目前访问类型处于联机状态。当我需要访问驱动器上的文件/文件夹时,我将浏览器重定向到Google URL并获得访问代码: 一切运转良好!但我只需要第一次重定向。 当我谷歌时,在google Drive API文档中,我发现我可以通过浏览器重定向获得刷新令牌,并将其保存在数据库中。(换句话说,我可以使用脱机访问)。 而且每次当我需要从google drive读取数据时,我使用刷新令牌获得访问令牌,而无

  • 我正在编写一个应用程序,调用来自Flutter的google fit rest api。 我需要使用(https://pub.dev/packages/google_sign_in)与谷歌签名。我可以毫无问题地获得一个令牌(见是否有人设法从谷歌登录(Flutter)获得id令牌),但如何获得一个新的令牌时,它是过期的? 我不想要求用户每小时登录并获得一个新的令牌

  • 我如何从第一次授权代码中获得刷新令牌和访问令牌?并且,我如何重用这个刷新令牌来获得一个新的访问令牌,以便使用Java API上传到Google Drive?这不是一个web应用程序。它在Java Swing代码中。

  • 由于访问令牌的寿命很短,所以我使用刷新令牌来获得一个新的访问令牌。成功的令牌响应将包括以下内容(来自microsoft api doc的示例): 我已经读到refresh_token的生命期是有效的,直到撤销或90天不活动。既然我得到了一个新的刷新令牌,我需要用这个新的刷新令牌替换旧的刷新令牌吗?如果我做了,如何删除旧的刷新令牌? 谢了!