#javascript #google-apps-script #methods #parameters #google-drive-api
#javascript #google-apps-script #методы #параметры #google-drive-api
Вопрос:
Я новичок в скрипте, и мне было интересно, могу ли я получить помощь с вопросом. В настоящее время я пытаюсь автоматически заполнить документ Google из отправки формы Google. В прошлом у меня был успех с небольшим тестом, но после повторной попытки с немного большей формой я сталкиваюсь с этой ошибкой:
«Исключение: параметры (строка, DriveApp.File) не соответствуют сигнатуре метода для DriveApp.File.makeCopy»
Мне не сразу понятно, о чем это мне говорит. Что я знаю, так это то, что я ничего не делаю иначе, чем в моем последнем мелкомасштабном тестировании, поэтому скрипт, который я запускаю, выглядит на первый взгляд надежным, поэтому я надеюсь, что кто-нибудь сможет мне помочь, указав, что не так. Вот сценарий:
function autoFillFormFromDoc(e) {
var clientCode = e.values[1];
var email = e.values[2];
var warningSigns = e.values[3];
var internalCopingStrategies = e.values[4];
var peopleAndSocial = e.values[5];
var peopleWhoCare = e.values[6];
var creatingSafety = e.values[7];
var clientName = e.values[8];
var date = e.values[9];
var templateFile = DriveApp.getFileById("1Vs8y3eZbyBlef8HlV7v9nhSRvaH39Cg5P0Q5zhpZBA");
var templateResponseFolder = DriveApp.getFileById("1OxsOwU6rAvohqRqDVOfH_f70kvu30HZp");
var copy = templateFile.makeCopy(clientName, templateResponseFolder);
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody();
body.replaceText("{{ClientCode}}", clientCode);
body.replaceText("{{Email}}", email);
body.replaceText("{{WarningSigns}}", warningSigns);
body.replaceText("{{InternalCopingStrategies}}", internalCopingStrategies);
body.replaceText("{{PeopleAndSocial}}", peopleAndSocial);
body.replaceText("{{PeopleWhoCare}}", peopleWhoCare);
body.replaceText("{{CreatingSafety}}", creatingSafety);
body.replaceText("{{ClientName}}", clientName);
body.replaceText("{{Date}}", date);
doc.saveAndClose();
}
Ответ №1:
Проблема:
File.makeCopy(name, destination)
ожидает два аргумента
name
типаstring
иdestination
типаfolder
Скрипт вызывает destination
с типом file
. Поэтому он выдает ошибку
Параметры (строка,DriveApp.File) не соответствуют сигнатуре метода для DriveApp.File.makeCopy
Решение:
Получить folder
вместо file
:
var templateResponseFolder = DriveApp.getFolderById("[FOLDER_ID]");