新的 Google Sheets API v4 目前每天拥有无限的读/写配额(这太棒了),但限制为每个帐户每 100 秒 500 次读/写,以及每个密钥每 100 秒 100 次读/写(或者,我已发现多个密钥来自同一 IP)。这对于大多数用例来说可能已经足够了,但我有一个边缘情况,需要将经常更新的带有 70 个选项卡的 Google Sheet 带到一个 Node.js 服务器,该服务器每隔约 30-60 秒左右将这些内容分发给用户的客户端(用户是数据注释者,也是学生研究助理)。在项目早期,只有 20-30 个选项卡时,这还不算太糟糕,但现在数据很大,服务器正在突破 100 个配额,并且每 10-15 分钟就会返回错误。
问题是这样的:
是否有建议的设置/方法可以让服务器实现 500 次调用/100 秒?
您可以使用 spreadsheets.get 在一次调用中读取整个电子表格,而不是每个请求 1 次调用。或者,如果您只需要值,您可以使用 spreadsheets.values.batchGet 在一次调用中读取多个不同的范围。
spreadsheets.values.update
,而不是使用 spreadsheets.values.batchUpdate
进行单独更新。Drive API 提供“推送通知”,因此您可以在发生更改时收到通知并对这些更改做出反应,而不是轮询它们。通知的延迟有点慢,但它可以完成工作。