检测文件何时上传到 GAS 中的 Google 驱动器

Detect when a File has Been Uploaded to Google Drive in GAS

我正在寻找一种在将文件上传到 google 驱动器时触发 GAS(google 应用程序脚本)的方法。我被指向了推送通知 API。我无法让它与 GAS 一起使用。 Whosebug 上有很多关于此的问题,但它们都是 5 年多以前的事了。从那以后有什么变化吗?我可以在不使用云功能的情况下执行此操作吗?

我看过的问题:

还有很多我没有在这里提到的。

我也知道您可以使用计时器来执行此操作,但是等待 15 分钟让更改生效会严重影响我的使用。有人提到我喜欢的[解决方案][1],但我不知道如何让它发挥作用:

UPDATE: Gmail leverages Cloud Pubsub for push notifications and this service has recently been updated to remove the need for domain verification for push endpoints. So, going forward its now possible to use GAS Web App URLs in this scenario.

Gmail API 使用 Cloud Pubsub 发送推送通知。

不幸的是,驱动器 API 目前不具备该功能。 Drive API 利用 HTTP 端点(也称为 webhooks)接收推送通知,这需要域验证 (see documentation)。

过去,GAS 网络应用在 Chrome 网上商店注册时会自动验证,但该选项已于 2019 年从 IDE 中删除。

此外,驱动器 API 将其大部分通知负载作为 HTTP headers 发送,无法从 GAS Web 应用程序访问(doPost(e) 仅允许访问 POST body 和 URL 参数)。

所以您想要的目前使用 GAS 是不可能的,至少它本身是不可能的。如果您想留在 Google 的生态系统中,您可以尝试使用 GCP Cloud Function(或者作为中介服务),但它不是免费的。

或者,您可以在 Google 的平台之外设置端点(例如,URL 到托管在您自己域中的 PHP 脚本),但是您您将需要使用文档中概述的方法之一来验证端点的 URL。