Я создал форму, в которой отправители не могут редактировать после отправки. Я прикрепил событие on form submit
и в этой функции я FormSubmission.getEditResponseUrl()
электронной почте значение FormSubmission.getEditResponseUrl()
.
function onSubmit(e) {
MailApp.sendEmail(e.response.getRespondentEmail(), "form test", e.response.getEditResponseUrl());
}
Функция работает - она отправляет письмо с URL. Но когда они нажимают на ссылку, они получают ошибку:
Вы не можете редактировать свой ответ
Ответы на эту форму не могут быть отредактированы. Попробуйте связаться с владельцем формы, если считаете, что это ошибка.
getEditResponseUrl()
я понимаю, любой, у кого есть URL-адрес, сгенерированный методом getEditResponseUrl()
разрешает им редактировать FormResponse
даже если в Form
не FormResponse
редактирование.
Есть ли что-то, что я делаю не так? Я схожу с ума, глядя на это.
Всего 1 ответ
От # 11 ответа Гуглера на проблему, связанную Аланом Уэллсом
Инженерная команда определила, что основной причиной этой проблемы было преднамеренное изменение работы URL-адресов. Несмотря на то, что мы временно отменили это изменение, мы вскоре вернемся к нему снова.
В частности, сегодня вы можете использовать URL-адрес для редактирования, даже если в форме отключен параметр «Редактировать после отправки». Мы не думаем, что это уважение является намерением владельца формы и внесло изменения, чтобы предотвратить изменения, если этот параметр не был включен.
В нашей первой попытке сделать это изменение мы направили пользователей на пустую страницу редактирования, что сбило с толку и заставило людей предположить, что произошла ошибка. В следующий раз, когда мы перевернем это изменение, мы вместо этого перенаправим пользователей на страницу с ошибкой, которая прояснит ситуацию.
Когда это изменение продвинется вперед, оно, скорее всего, снова сломает некоторые скрипты и надстройки.
Этот же пост включает в себя, что делать:
Есть две вещи, которые можно сделать, чтобы предотвратить это:
1) Включите параметр «Изменить после отправки» вручную на формах, которые вы хотите использовать с этой функцией.
2) В своем коде Apps Script используйте метод setAllowResponseEdits (), чтобы включить этот параметр, когда вы знаете, что ваш код требует его.