我正在使用Apps Script生成一个包含来自谷歌表单的响应的文档,并将其存储在一个新文件夹中。我还允许用户根据他们提供的电子邮件提交表单编辑器访问权限。
.addEditor(email);
这似乎适用于使用g-suite的谷歌域或公司域。
然而,当电子邮件不是基于谷歌时,脚本就会中断。
'Invalid email: email@example.com'
正在寻找跳过此错误并完成脚本的方法。
function autoFillGoogleDocFromForm(e) {
var Timestamp = e.values[0];
var email = e.values[1];
var file = DriveApp.getFileById('FILEID');
var folder = createfolder();
var copy = file.makeCopy(Name + ' - Document', folder);
var newId = copy.getId();
var doc = DocumentApp.openById(newId).addEditor(email);
var body = doc.getBody();
body.replaceText('{{Timestamp}}', Timestamp);
body.replaceText('{{Email}}', Email);
doc.saveAndClose();
}
正在寻找跳过此错误并获得脚本的方法完成
如果您正在寻找跳过错误的解决方案,那么您可以始终使用try。。。捕获:
function autoFillGoogleDocFromForm(e) {
var Timestamp = e.values[0];
var email = e.values[1];
var file = DriveApp.getFileById('FILEID');
var folder = createfolder();
var copy = file.makeCopy(Name + ' - Document', folder);
var newId = copy.getId();
try{
var doc = DocumentApp.openById(newId).addEditor(email);
}
catch(error){
var doc = DocumentApp.openById(newId);
}
var body = doc.getBody();
body.replaceText('{{Timestamp}}', Timestamp);
body.replaceText('{{Email}}', Email);
doc.saveAndClose();
}
此代码段将try
执行var doc = DocumentApp.openById(newId).addEditor(email);
。
如果后者失败,那么它将只打开文档var doc = DocumentApp.openById(newId);
并继续执行其余代码。