添加带有脚本的编辑器抛出 'Invalid email' 并停止脚本
Adding editor with script throws 'Invalid email' and stops script
我正在使用 Apps 脚本生成一个文档,其中包含来自 Google 表单的回复,并将其存储在一个新文件夹中。我还允许用户根据他们提供的电子邮件提交表单编辑器访问权限。
.addEditor(email);
这似乎适用于 Google 域或使用 g-suite 的公司域。
但是,当电子邮件不是 Google 时,脚本会中断。
'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();
}
Looking for a means of skipping past this error and having the script
complete.
如果您正在寻找跳过错误的解决方案,那么您可以随时使用try...catch:
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);
并继续执行其余代码。
我正在使用 Apps 脚本生成一个文档,其中包含来自 Google 表单的回复,并将其存储在一个新文件夹中。我还允许用户根据他们提供的电子邮件提交表单编辑器访问权限。
.addEditor(email);
这似乎适用于 Google 域或使用 g-suite 的公司域。
但是,当电子邮件不是 Google 时,脚本会中断。
'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();
}
Looking for a means of skipping past this error and having the script complete.
如果您正在寻找跳过错误的解决方案,那么您可以随时使用try...catch:
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);
并继续执行其余代码。