Текущая ситуация
У меня есть веб-приложение с примером URL, который выглядит следующим образом
https://script.google.com/a/domain.com/macros/s/Adlksjflf09_LEg8kdlf9/exec?ID=1
Это веб-приложение имеет функцию doGet(e)
, которая перенаправляетэто к URL-адресу формы Google.Используя приведенный выше пример, это выглядело бы так:
https://docs.google.com/forms/d/e/1FAIpQLSfi8jWUK2N4y03N4YYJ9p8Cyr2x06b1C6WgS_TcV98WM_ACtQ/viewform?ID=1
Это поле идентификатора не заполняет ни один из вопросов в форме Google.По сути, он предназначен для хранения информации.
Когда пользователь отправляет ответ формы, я объединяю информацию из параметров запроса, а также ответ формы и отправляю его в качестве полезной нагрузки на URL-адрес webhook.
Как я могу это сделать, используя CacheService
.Когда пользователь открывает первый URL-адрес, функция doGet(e)
сохраняет e.queryString как Hash
в кэше.Затем, когда пользователь отправляет форму, я могу получить информацию из кэша и объединить ее с formResponse.
Проблема, с которой я столкнулся, связана с параллелизмом.Будет случай, когда более одного пользователя открыли первый URL.Это приводит к перезаписи Hash['queryString']
в кеше, а это не то, что мне нужно.
Актуальный вопрос
Есть ли способ получить параметры запроса из onFormSubmitиз формы и объединить его с ответом формы без использования CacheService
, поскольку мое текущее решение не поддерживает параллелизм?
Насколько я понимаю, триггер onFormSubmit
не имеет e
(переменная события) для меня сделать что-то вроде e.queryString, чтобы получить параметры запроса.Я могу ошибаться, нужно, чтобы кто-то подтвердил.
ИЛИ
Можно ли кешировать информацию таким образом, чтобы я мог отслеживать, чья строка запроса чья, а затем извлекать соответствующую информацию?при отправке формы.