首页 > 解决方案 > 这是否会使我超出 Google 电子表格 API 调用配额的风险?

问题描述

我正在使用谷歌电子表格来协作处理一些常见数据,并使用电子表格宏处理这些数据并将其保存在单元格中。这种方法很容易出错,因为处理数据的宏函数依赖于除了作为参数给出的输入之外的输入。

常见数据外观示例

内容表 在此处输入图像描述

剖面图 在此处输入图像描述

Pages Sheet 在此处输入图像描述 对这些通用数据的解释

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

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

早些时候,当整个计算都在谷歌电子表格上时,我只需要获取最终数据并使用它,这相当于少了很多 API 调用。参考上面的例子,这意味着我只会获取“页面表”的输出 html。

Q1)所以我的问题是,考虑到我计划将整个计算转移到本地机器上,如果我只调用 3 个 API 来批量获取三张表的数据并提取整个数据,它是否仍然算作 3 个 API 调用,还是大请求有不同的 API 成本?这种方式是否存在超额超额风险?

Q2)假设我使用钩子,电子表格钩子和驱动器钩子与实时更改同步,我的配额用完的风险是什么。每个钩子调用是否构成一个 API 调用。关于这样做的最佳实践的任何一般建议?

谢谢

标签: google-apps-scriptgoogle-sheetsgoogle-sheets-api

解决方案


根据文档,默认情况下,Google Sheets API 每个项目每 100 秒限制 500 个请求,每个用户每 100 秒限制 100 个请求,除非您在项目中更改它。

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

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

作为一种解决方法,我建议您使用虚拟云端硬盘

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


推荐阅读