管理 Google 工作表 API 刷新令牌

Managing Google Sheets API Refresh Token

我正在为我的网站使用 Google Sheets 来存储某些订单信息。我正在处理的问题是 access_token 会在大约 一个小时 内过期,而 refresh_token 会持续 几天 最多在它过期之前。

一旦我的 refresh_token 到期,我必须:

  1. 使用我的应用 URL
  2. 物理登录 Google
  3. 接受范围并复制授权码
  4. 发出代码授权请求以获得新的刷新令牌

以上过程是手动的,繁琐,一个月后难以忍受。

有没有更好的方法?

很遗憾,我无法理解你的实际情况和你的剧本,请问下面的模式如何?

模式 1:

在此模式中,使用服务帐户。使用服务帐户时,无需使用浏览器授权范围即可检索访问令牌。您可以使用访问令牌使用表格 API。

模式二:

在此模式中,使用了由 Google Apps 脚本创建的 Web 应用程序。使用由 Google Apps Script 创建的 Web 应用程序时,无需授权过程即可使用 Web 应用程序,因为部署 Web 应用程序时,授权过程已完成。而且,在这种情况下,可以使用电子表格服务。所以不需要使用 Sheets API。而且,我认为 Web 应用程序可以用作您正在使用的表格 API 的包装器 API。使用此模式时,您可以通过 HTTP 请求使用 Web 应用程序。

参考文献:

The problem I'm dealing with is that the access_token expires within about an hour and the refresh_token lasts me a couple of days at most before it expires.

如果您的应用程序仍在测试中,则刷新令牌仅持续 7 天。转到 Google 云控制台并将其设置为生产环境。然后您的刷新令牌将停止过期。

I am using Google Sheets for my website to store certain order information.

如果您只使用由开发者控制的 sheet。这意味着您无法访问您的用户在他们自己的 google 驱动器帐户上拥有的 sheet。那么您应该考虑使用服务帐户。 Should you be using a Google service account