Никакой элемент с данным ID не может быть найден в форме Google - PullRequest
2 голосов
/ 06 марта 2020

Я создал скрипт, который запускается при отправке в форму Google. Он должен получить идентификатор изображения, загруженного в форму, получить изображение в виде BLOB-объекта, а затем переслать его на адрес электронной почты. Дело в том, что иногда (примерно 1 из 10) скрипт выдает следующую ошибку:

Исключение: невозможно найти элемент с данным идентификатором или у вас нет прав доступа Это. at__Submit (код: 6: 24)

Я подумал, что это будет связано со временем, которое требуется Google для загрузки / перемещения файла на диск, поэтому я установил тайм-аут, чтобы дать ему время , Ошибка все еще появляется, немного реже. Кто-нибудь понимает, где это может go не так?

Код:

function on_Submit(e) {
  Utilities.sleep(30 * 1000)
  var res  = e.response
  var image_id = res.getItemResponses()[0].getResponse()

  var image = DriveApp.getFileById(image_id).getBlob()}

Функция on_Submit (e) связана с ручным триггером, позволяющим использовать DriveApp. Спасибо

1 Ответ

0 голосов
/ 10 марта 2020

В некоторых ответах оказалось несколько загрузок файлов. Ответ на этот вопрос был массив идентификаторов. Вот правильный код:

Utilities.sleep(30 * 1000)
  var res  = e.response
  var image_id = res.getItemResponses()[0].getResponse()
  console.log(image_id)
  if(Array.isArray(image_id)){
    var images = [];
    for(var i in image_id){
      var id = image_id[i]
      var image = DriveApp.getFileById(id).getBlob()
      images.push(image)
    }
    console.log(images)
    GmailApp.sendEmail(SOME_EMAIL, SUBJECT, BODY, {attachments: images})
  }
  else{
    var image = DriveApp.getFileById(image_id).getBlob()
    GmailApp.sendEmail(SOME_EMAIL, SUBJECT, BODY, {attachments: [image]})
  }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...