将文件保存到Google云端硬盘后,我可以触发Google脚本吗?

时间:2016-07-07 10:02:51

标签: google-apps-script triggers

我有一个VBA脚本,可以将Excel文件转换为PDF,然后通过Google Drive桌面同步将其保存到Google云端硬盘文件夹。

我想要做的是让Google脚本触发器监视给定的文件夹,每次保存文件时,它都会运行一个脚本来通过电子邮件发送文件。我每15分钟运行基于时间的触发器时脚本工作正常,但更喜欢实时解决方案。

所以我喜欢onChange()触发器,但是对于Google Drive。

可能?

感谢

3 个答案:

答案 0 :(得分:3)

使用Google云端硬盘的Push Notifications API可以实现这一点。有关详细信息,请参阅this link

答案 1 :(得分:1)

GAS目前无法使用这种脚本触发器。你必须运行一个基于时间的脚本,不断检查。

答案 2 :(得分:0)

我找到了这个blog,并对其进行了一些修改:

function setupTrigger(){
  let oneMinuteAgo = new Date(new Date().getTime() - 1 * 60 * 1000).toISOString();  
  let files = DriveApp.searchFiles('("1w0P5s5-BAlWB1EIr124h3wFPha_q6BPt" in parents) and (modifiedDate > "' + oneMinuteAgo + '")');
  while (files.hasNext()){
    let file = files.next();
  }
}

其中 1w0P5s5-BAlWB1EIr124h3wFPha_q6BPt 是我要上传文件的文件夹ID。请注意,modifiedDate表示文件的修改日期(因此,如果您是在一天前创建文件的,那么ModifyDate会表示一天前,而不是上传日期)。