Скрипт Google формы для создания новой папки на основе выпадающего списка и перемещения в нее изображений

#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 как не определено».