#google-apps-script #google-docs #google-forms #google-workspace
#google-apps-script #google-docs #google-forms #google-workspace
Вопрос:
Я использую скрипт приложений для создания документа, включающего ответы из формы 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();
}
Ответ №1:
Ищу способ пропустить эту ошибку и завершить сценарий.
Если вы ищете решение, позволяющее пропустить ошибку, вы всегда можете использовать 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);
и продолжит работу с остальной частью кода.
Комментарии:
1. Спасибо, Мариос, я действительно хочу, чтобы остальная часть кода продолжала выполняться, поэтому, если в электронном письме есть ошибка, он продолжает выполнять функцию замены текста
2. @EwanFarry Спасибо за ваш отзыв. Пожалуйста, попробуйте мое обновленное решение.