【问题标题】:Trying to create a script that triggers on a folder creation event within the Google Drive App尝试创建一个在 Google Drive App 中的文件夹创建事件上触发的脚本
【发布时间】:2023-03-14 11:20:02
【问题描述】:

我是 Javascript 方面的超级新手,但无论如何,这是我的问题。

每当在谷歌驱动器中创建一个新文件夹时,我想自动创建一个子文件夹。我能想到的最简单的方法是在应用脚本中使用某种 onEvent 触发器。但我不知道是否可以执行“onNewFolder”触发器(或任何可能的名称)。

如果可以的话,应该很容易,我可以简单地使用该触发器 ---> 即当自动创建新文件时“createFolder(name)”

希望这是有道理的。

【问题讨论】:

    标签: google-apps-script google-drive-api


    【解决方案1】:

    您需要使用 Google 的 Drive API 为文件夹或文件设置推送通知。以下是该功能的文档链接:

    https://developers.google.com/drive/v3/web/push

    很遗憾,Google Apps 脚本存在一些限制,会妨碍您有效使用它。通常,您会将脚本部署为 Web 应用程序并将其 URL 用作 Web 挂钩端点以通过 POST 接收推送通知。但是,Drive Push Notifications 将其所有相关信息作为请求标头发送,目前无法从 Google Apps 脚本访问。

    我想出了一个解决方案,它利用 Cloud Functions 作为中间人来绕过这些限制。我在以下链接上写了一篇关于这种方法的文章:

    https://gist.github.com/DimuDesigns/7b49c9fe4de79f851fbeaa4cb18d0126

    Google 的问题跟踪器上有一个功能请求,请求支持 Apps Script Web Apps 的请求标头。

    请在以下链接中为问题加注星标,以表示支持: https://issuetracker.google.com/issues/67764685

    【讨论】:

    • 嗨,我对您的解决方案很感兴趣,但是 G+ 链接不再起作用
    【解决方案2】:

    我认为您正在寻找G Suite Activity API

    Activity API 由 Activity 资源(表示对用户 Google Drive 中的对象所做的更改)和 list 方法(允许您检索有关这些更改的信息)组成。

    这是API Explorer。这是 Javascript sample code 让您入门。

    【讨论】:

    • 谢谢!我会调查这一切!从未见过 G Suite Activity API
    • AFAIK Activity API 适用于更改,而不适用于在用户的 Google Drive 上创建新对象。
    • @Rubén 如果您再往下看 API Explorer 的页面(中间一列),您会看到一个表格行,其第一列是 activities[].combinedEvent.primaryEventType,其 可接受的值包括createmove
    • 你找到监听新建文件夹事件的方法了吗?
    • @Rubén 老实说,没有。目前,我认为客户端必须轮询服务器。
    【解决方案3】:

    新文件夹没有simple triggerinstallable trigger

    另一种方法是创建一个时间驱动的触发器来查找新文件夹。不幸的是,Google Drive Search Parameters 不包含按创建时间搜索的内容,因此您的脚本应该扫描所有文件夹并将getDateCreated() 返回的日期与脚本运行的最后日期进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-09
      • 2019-05-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-16
      • 1970-01-01
      相关资源
      最近更新 更多