在提交 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]})
}
我创建了一个在 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]})
}