【问题标题】:Managing Google Sheets API Refresh Token管理 Google Sheets API 刷新令牌
【发布时间】:2022-01-05 02:33:18
【问题描述】:

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

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

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

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

有没有更好的办法?

【问题讨论】:

  • 虽然我无法理解您的实际情况和您的脚本,但我提出了2个解决方法作为答案。你能确认一下吗?如果我误解了您的问题并且没有用处,我深表歉意。

标签: oauth-2.0 google-api google-oauth google-sheets-api


【解决方案1】:

我正在处理的问题是 access_token 在大约一个小时内到期,而 refresh_token 在到期前最多持续几天。

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

我在我的网站上使用 Google 表格来存储某些订单信息。

如果您只使用开发人员控制的工作表。这意味着您不会访问用户在他们自己的 google drive 帐户上拥有的工作表。然后您应该考虑使用服务帐户。 Should you be using a Google service account

【讨论】:

  • DalmTo,非常感谢您的回答。我现在将尝试在接受它作为答案之前对其进行测试。你给我的不是一个,而是两个不同的选择,我松了一口气。
  • 我创建了一个服务帐户并授予了我使用的工作表的权限,瞧,它起作用了。凭据似乎非常静态。我可能需要深入研究该过程,但私钥包含在 token.json 中。非常感谢!
  • 我可能在视频中提到过。如果可能的话,应该使用服务帐户,授权方法要容易得多。
  • 确实,现在我可以签署我自己的令牌并在我的 access_tokens 上指定我自己的到期时间。我很高兴你找到了我的问题,很棒的视频,我感觉就像一个教科书案例。
【解决方案2】:

很遗憾,我无法理解你的实际情况和你的脚本,下面的pattens怎么样?

模式一:

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

模式2:

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

参考资料:

【讨论】:

    猜你喜欢
    • 2016-01-26
    • 2016-08-03
    • 2020-02-06
    • 2021-05-15
    • 2012-02-15
    • 2014-11-25
    • 2016-12-13
    • 2016-08-21
    • 1970-01-01
    相关资源
    最近更新 更多