I used 本指南创建 Google 日历OAuth2客户端 ID 和客户端密钥。然后,我使用 gcalcli 命令创建 API 访问令牌:
gcalcli --noauth_local_webserver --client-id=$clientid --client-secret=$clientsecret --config-folder $path/auth agenda
这工作得很好,命令向我显示了谷歌日历事件的列表。
它还创建了这个令牌$path/auth/oauth
这允许我再次运行该命令,而不必每次都进行身份验证,因为保存的令牌为我完成了这一任务。
我的问题是由于某种原因oauth
令牌每 7 天就会过期,然后我必须再次执行相同的过程来创建新令牌。
中有一个条目oauth
文件显示"expires_in": 83,
而其他时候我经历了相同的过程,条目是"expires_in": 3599,
。我假设此条目定义了令牌的寿命,但我不能 100% 确定。
所以我的问题是,为什么这个令牌会在一周后过期,我可以做什么来延长它的时间?
附加信息:这基本上是一个在 Debian 11 上运行的 bash 脚本。它运行 gcalcli,获取 google 日历事件列表并通过短信发送提醒。
我意识到有一种方法可以使用刷新令牌来更新访问令牌,但这不是我可以做的事情。
需要明确的是Access tokens
一小时内过期,Refresh tokens
用于在刷新令牌过期时请求新的访问令牌。
如果您发现您的应用程序在 7 天后停止工作,原因如下。您可能会得到一个invalid token
error.
如果您检查文档过期它指出
为外部用户类型配置了 OAuth 同意屏幕且发布状态为“测试”的 Google Cloud Platform 项目将获得一个刷新令牌,该令牌将在 7 天后过期。
解决方案是将您的应用程序设置为生产环境
我意识到有一种方法可以使用刷新令牌来更新访问令牌,但这还不是我可以做的事情。
如果您发现代码在 7 天后停止工作,代码中的某些内容已经在使用刷新令牌。我做了一些挖掘gcalcli它在内部使用Google api python client library
。这就是刷新您的访问令牌的原因。#L132
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)