#google-apps-script #google-drive-api #google-forms
Вопрос:
Я хотел бы создать скрипт, который позволит мне создавать папки на основе выпадающего списка имен в форме. В зависимости от того, какое имя выбрано, я хочу иметь возможность автоматически переносить загруженные фотографии в эту папку. Возможно ли это? Не программист. Мне удалось получить это из приложения, но я получаю сообщение об ошибке:
Ошибка типа: itemResponses[1].GetResponse(…).Foreach не является функцией.
Это сценарий, который я нашел.
function onFormSubmit(e) {
const folderId = "ID GOES HERE"; // folder ID of the destination folders.
const form = FormApp.getActiveForm();
const formResponses = form.getResponses();
const itemResponses = formResponses[formResponses.length-1].getItemResponses();
Utilities.sleep(3000); // This line might not be required.
// Prepare the folder.
const destFolder = DriveApp.getFolderById(folderId);
const folderName = itemResponses[0].getResponse();
const subFolder = destFolder.getFoldersByName(folderName);
const folder = subFolder.hasNext() ? subFolder.next() : destFolder.createFolder(folderName);
// Move files to the folder.
itemResponses[1].getResponse().Foreach(id => DriveApp.getFileById(uploadedImageId).moveTo(folder));
}
Комментарии:
1. Это действительно возможно
2. @Купер, не могли бы вы подробнее рассказать, пожалуйста?
3. У вас есть конкретный вопрос?
4. Также — я только что заметил: вы используете
Foreach()
— в то время как это должно бытьforEach()
. Исправит ли это ситуацию, зависит от того, чтоitemResponses[1].getResponse()
будет оценено. Поэтому вам, возможно, также потребуется показать нам, что это такое, например, с помощьюconsole.log( itemResponses[1].getResponse() );
.5. Это было то, о чем заявил @andrewjames, ошибка произошла из — за вашей опечатки
forEach()
. Я просто хочу перейтиuploadedImageId
наid
«такuploadedImageId
как не определено».