这是否会使我有超过 Google 电子表格 API 调用配额的风险?

Does this risk me to exceed Google spreadsheet API calls quota?

我正在使用 google spreadsheet 协作处理一些常见数据,并使用 spreadsheet 宏处理这些数据并将其保存在单元格中。这种方法很容易出错,因为处理数据的宏函数取决于输入,而不是作为参数给出的输入。

常见数据的外观示例

Content Sheet

Sections Sheet

Pages Sheet 对这个常用数据的解释

  1. 三个sheet由不同的合作者填写
  2. 内容 sheet 定义页面的基本元素,它们在 sheet 部分(使用宏)中被引用(使用它们的 UUID),最后所有部分加在一起使可发布 html页。
  3. 输出 html 格式因目的地而异,有多个 - 静态 html、Google 文档、Google 幻灯片、Word-press、MediaWiki 等。格式化是使用 GAS 宏完成的。

我尝试了各种解决方案,但没有一个能正常工作。最后,我考虑将 google spreadsheet 仅作为数据源,并将整个计算移动到我的本地计算机。这意味着我必须下载 sheets 数据(3 sheets),大约有 1,000 行,但随着时间的推移会变得庞大。

早些时候,当整个计算在 google 上展开 sheet 时,我只需要获取最终数据并使用它,这相当于减少了 API 次调用.参考上面的例子,这意味着我只会获取“Pages sheet”的输出html。

Q1) 所以我的问题是,考虑到我计划将整个计算移动到本地机器,如果我只调用 3 APIs 批量获取三个 sheet 的数据,并拉取整个数据,它仍然算作 3 个 API 调用,还是大请求有不同的 API 成本?这种做法有没有超运行配额的隐患?

Q2) 假设我使用钩子,传播sheet钩子和驱动钩子来同步实时变化,我的风险是什么运行 超出配额。每个挂钩调用是否构成一个 API 调用。关于执行此操作的最佳实践的一般建议?

谢谢

根据 documentation 默认情况下 Google 工作表 API 的限制是每个项目每 100 秒 500 个请求,每个用户每 100 秒 100 个请求,除非您更改它在你的项目中。

A1) 如果你发出一个请求,无论数据有多大,它都算作 1 个请求,因此我会发出一个请求,以便 GET 整个电子表格,而不是进行 3 API 次调用,然后进行您之前提到的整个过程。

A2) 如果您考虑过使用 Push Notifications 请记住,您将需要一些额外的配置,例如域。

作为解决方法,我建议您使用 Drive File Stream

由于您希望将计算移至本地计算机,因此此选项会更好,但需要进行一些更改。例如,您可以将输出更改为 CSV 以便更好地处理数据,它仍然是 Google Sheets valid file type,然后在同一台机器上托管您的应用程序或使您的本地机器可访问。