在提交 Google 表单时找不到具有给定 ID 的项目

No item with the given ID can be found onSubmit Google Form

我创建了一个在 Google 表单上运行 onSubmit 的脚本。它应该获取上传到表单的图像的 ID,将图像作为 Blob,然后将其转发到某个电子邮件地址。问题是,有时(大约十分之一)脚本会出现以下错误:

Exception: No item with the given ID could be found, or you do not have permission to access it. at on_Submit(Code:6:24)

我认为这与 Google 到 Upload/Move 文件进入云端硬盘所花费的时间有关,所以我设置了一个超时时间来给它一些时间。错误仍然出现,频率降低了一点。有谁知道这可能哪里出错了?

代码:

function on_Submit(e) {
  Utilities.sleep(30 * 1000)
  var res  = e.response
  var image_id = res.getItemResponses()[0].getResponse()

  var image = DriveApp.getFileById(image_id).getBlob()}

on_Submit(e) 函数链接到手动触发器以启用 DriveApp。 谢谢

一些回复竟然有多个文件上传。对该问题的回答是一组 ID。这是正确的代码:

Utilities.sleep(30 * 1000)
  var res  = e.response
  var image_id = res.getItemResponses()[0].getResponse()
  console.log(image_id)
  if(Array.isArray(image_id)){
    var images = [];
    for(var i in image_id){
      var id = image_id[i]
      var image = DriveApp.getFileById(id).getBlob()
      images.push(image)
    }
    console.log(images)
    GmailApp.sendEmail(SOME_EMAIL, SUBJECT, BODY, {attachments: images})
  }
  else{
    var image = DriveApp.getFileById(image_id).getBlob()
    GmailApp.sendEmail(SOME_EMAIL, SUBJECT, BODY, {attachments: [image]})
  }