google 日历 api 令牌将在 7 天后过期
google calendar api token expires in 7 days
我使用 this guide 创建了一个 Google 日历 OAuth2 客户端 ID 和客户端密码。然后我使用这个 gcalcli 命令创建了一个 API 访问令牌:
gcalcli --noauth_local_webserver --client-id=$clientid --client-secret=$clientsecret --config-folder $path/auth agenda
这很好用,命令向我显示了 google 日历事件的列表。
它还创建了这个令牌 $path/auth/oauth
,它允许我再次 运行 命令,而不必每次都进行身份验证,因为保存的令牌会为我完成。
我的问题是,由于某种原因,oauth
令牌每 7 天过期一次,然后我必须再次执行相同的过程以创建一个新令牌。
oauth
文件中有一个条目显示 "expires_in": 83,
,而其他时候我经历了相同的过程,条目是 "expires_in": 3599,
。我假设此条目定义了令牌的寿命,但我不是 100% 确定。
所以我的问题是,为什么这个令牌会在一周内过期,我该怎么做才能延长它的时间?
附加信息:
这基本上是 Debian 11 上的 bash 脚本 运行ning。它 运行s gcalcli,获取 google 日历事件列表并通过短信发送提醒。
我知道有一种方法可以使用刷新令牌来更新访问令牌,但我还没有这样做。
要清楚Access tokens
在一小时内过期,Refresh tokens
用于在刷新令牌过期时请求新的访问令牌。
如果您发现您的应用在 7 天后停止运行,则可能是由于以下原因。您可能遇到 invalid token
错误。
如果您查看 expiration 的文档,它指出
A Google Cloud Platform project with an OAuth consent screen configured for an external user type and a publishing status of "Testing" is issued a refresh token expiring in 7 days.
解决方案是将您的应用设置为正式版
I realize there's a way to use the refresh token to renew the access token, but it's not something I got around doing yet.
如果您发现您的代码在 7 天后停止工作,您的代码中的某些内容已经在使用刷新令牌。我在 gcalcli internally it uses the Google api python client library
. This is what is refreshing your access token. #L132
中做了一些挖掘
我使用 this guide 创建了一个 Google 日历 OAuth2 客户端 ID 和客户端密码。然后我使用这个 gcalcli 命令创建了一个 API 访问令牌:
gcalcli --noauth_local_webserver --client-id=$clientid --client-secret=$clientsecret --config-folder $path/auth agenda
这很好用,命令向我显示了 google 日历事件的列表。
它还创建了这个令牌 $path/auth/oauth
,它允许我再次 运行 命令,而不必每次都进行身份验证,因为保存的令牌会为我完成。
我的问题是,由于某种原因,oauth
令牌每 7 天过期一次,然后我必须再次执行相同的过程以创建一个新令牌。
oauth
文件中有一个条目显示 "expires_in": 83,
,而其他时候我经历了相同的过程,条目是 "expires_in": 3599,
。我假设此条目定义了令牌的寿命,但我不是 100% 确定。
所以我的问题是,为什么这个令牌会在一周内过期,我该怎么做才能延长它的时间?
附加信息: 这基本上是 Debian 11 上的 bash 脚本 运行ning。它 运行s gcalcli,获取 google 日历事件列表并通过短信发送提醒。
我知道有一种方法可以使用刷新令牌来更新访问令牌,但我还没有这样做。
要清楚Access tokens
在一小时内过期,Refresh tokens
用于在刷新令牌过期时请求新的访问令牌。
如果您发现您的应用在 7 天后停止运行,则可能是由于以下原因。您可能遇到 invalid token
错误。
如果您查看 expiration 的文档,它指出
A Google Cloud Platform project with an OAuth consent screen configured for an external user type and a publishing status of "Testing" is issued a refresh token expiring in 7 days.
解决方案是将您的应用设置为正式版
I realize there's a way to use the refresh token to renew the access token, but it's not something I got around doing yet.
如果您发现您的代码在 7 天后停止工作,您的代码中的某些内容已经在使用刷新令牌。我在 gcalcli internally it uses the Google api python client library
. This is what is refreshing your access token. #L132