如何以编程方式刷新gmail api的令牌?

如何以编程方式刷新gmail api的令牌?,gmail,google-oauth,cypress,access-token,Gmail,Google Oauth,Cypress,Access Token,我正在编写需要在CI中运行的Cypress测试,其中一些测试需要检查gmail。我遵循gmail api并使用提供的程序生成一个保存到磁盘的令牌。令牌以以下格式保存: { access_token: refresh_token: scope: token_type: expiry_date: } 该令牌包含一个刷新令牌,因此我可以在测试中重用同一个文件,并且可以正常工作。但大约7/8天后,测试失败,称代币已被吊销 我想再申请一个新的代币,但quickstar

我正在编写需要在CI中运行的Cypress测试,其中一些测试需要检查gmail。我遵循gmail api并使用提供的程序生成一个保存到磁盘的令牌。令牌以以下格式保存:

{
   access_token:
   refresh_token:
   scope:
   token_type:
   expiry_date:

 } 
该令牌包含一个刷新令牌,因此我可以在测试中重用同一个文件,并且可以正常工作。但大约7/8天后,测试失败,称代币已被吊销


我想再申请一个新的代币,但quickstart中提供的程序需要手动完成(提供一个链接,供用户访问、使用gmail登录、获取他们粘贴回终端的代码)。有没有办法通过编程方式请求新令牌?

如果刷新令牌已过期,则获取新令牌的唯一方法是通过向用户显示同意屏幕请求访问您试图访问的用户的数据

我认为主要的问题是为什么你的刷新令牌在大多数情况下会过期,但是刷新令牌不应该过期

正在生产并通过谷歌验证流程的应用程序的刷新令牌不会过期

由仍在测试中的应用程序创建的刷新令牌最多只能持续两周


如果用户更改密码,这也会使使用gmail scopes创建的刷新令牌过期

好的,必须解释一下。该应用程序仍在测试中,因为它只用于内部e2e测试,所以我从未费心验证它。拥有一个未过期的刷新令牌是否是拥有一个已验证的应用程序的唯一方法?这不是我个人测试过的东西,但最近有很多人与我联系,他们与你有相同的问题。我怀疑这是一个秘密的改变。不过,我一直无法从我的谷歌联系人那里获得任何关于这方面的信息