【问题标题】:Detect when a File has Been Uploaded to Google Drive in GAS检测文件何时上传到 GAS 中的 Google Drive
【发布时间】:2021-07-20 07:38:49
【问题描述】:

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

我看过的问题:

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

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

更新:Gmail 利用 Cloud Pubsub 进行推送通知,该服务最近已更新,无需对推送端点进行域验证。因此,现在可以在这种情况下使用 GAS Web 应用 URL。

【问题讨论】:

  • 请展示您尝试过的内容,并更具体地说明您查看过的问题以及它们对您没有帮助的原因。
  • 已编辑。 +1 @Rubén
  • @MetaMan 您能否阅读我的问题的底部,因为它已被编辑。
  • 从选择一种方法开始,这个问题看起来需要更多的关注。看起来你更倾向于使用 Cloud Pubsub,所以把你的注意力集中在这上面,然后把你必须做/学习的事情分成更小的部分,并尝试确定你应该从哪里开始,然后如果你卡在其中一个步骤上,就该特定步骤提出问题(不要忘记展示您尝试过的内容)

标签: google-apps-script google-cloud-platform push-notification triggers google-drive-api


【解决方案1】:

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

很遗憾,Drive API 目前不具备该功能。 Drive API 利用 HTTP 端点(又名 webhook)来接收推送通知,这需要域验证 (see documentation)。

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

此外,Drive API 将其大部分通知负载作为 HTTP 标头发送,这些标头无法从 GAS Web 应用程序访问(doPost(e) 仅允许访问 POST 正文和 URL 参数)。

因此,目前使用 GAS 无法实现您想要的,至少不能单独使用。如果您想留在 Google 的生态系统中,您可以尝试使用 GCP Cloud Function(或作为中介服务),但它不是免费的。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多