ari*_*osv 2 google-calendar-api oauth-2.0 google-oauth
我使用本指南创建了 Google 日历OAuth2客户端 ID 和客户端密钥。然后,我使用 gcalcli 命令创建 API 访问令牌:
gcalcli --noauth_local_webserver --client-id=$clientid --client-secret=$clientsecret --config-folder $path/auth agenda
Run Code Online (Sandbox Code Playgroud)
这工作得很好,命令向我显示了谷歌日历事件的列表。
它还创建了这个令牌$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错误。
如果您检查文档是否过期,它会说明
为外部用户类型配置 OAuth 同意屏幕且发布状态为“测试”的 Google Cloud Platform 项目将获得一个刷新令牌,该令牌将在 7 天后过期。
解决方案是将您的应用程序设置为生产环境
我意识到有一种方法可以使用刷新令牌来更新访问令牌,但这还不是我可以做的事情。
如果您发现代码在 7 天后停止工作,代码中的某些内容已经在使用刷新令牌。我在gcalcli内部做了一些挖掘,它使用Google api python client library. 这就是刷新您的访问令牌的原因。 #L132
| 归档时间: |
|
| 查看次数: |
3776 次 |
| 最近记录: |