Вы не можете редактировать ошибку ответа при использовании FormResponse.getEditResponseUrl - PullRequest
1 голос
/ 13 мая 2019

Я создал форму, в которой отправители не могут редактировать после отправки. Я прикрепил событие on form submit и в этой функции отправляю электронное письмо со значением FormSubmission.getEditResponseUrl().

function onSubmit(e) {
  MailApp.sendEmail(e.response.getRespondentEmail(), "form test", e.response.getEditResponseUrl());
}

Функция работает - она ​​отправляет электронное письмо с URL. Но когда они нажимают на ссылку, они получают ошибку:

Вы не можете редактировать свой ответ

Ответы на эту форму не могут быть отредактированы. Попробуйте связаться с владельцем формы, если считаете, что это ошибка.

Насколько я понимаю, любой, у кого URL, созданный с помощью getEditResponseUrl(), разрешит им редактировать FormResponse, даже если для Form установлено значение , а не , и он сможет редактировать.

Есть ли что-то, что я делаю не так? Я схожу с ума, глядя на это.

1 Ответ

2 голосов
/ 13 мая 2019

От ответа # 11 от Googler на вопрос , связанный Аланом Уэллсом

Инженерная команда определила, что основной причиной этой проблемы преднамеренное изменение порядка работы URL-адресов. Хотя мы прокатились временно отмените это изменение, мы скоро снова его перенесем.

В частности, сегодня вы можете использовать URL для редактирования, даже если форма имеет Параметр «Редактировать после отправки» отключен. Мы не думаем, что это уважение намерение владельца формы и внесло изменения, чтобы предотвратить изменения, если это не настройка была включена.

В нашей первой попытке сделать это изменение мы направили пользователей к пустому редактированию. страница, которая сбивала с толку и заставляла людей предполагать, что была ошибка. в следующий раз, когда мы перенесем это изменение, мы вместо этого перенаправим пользователей на страницу с ошибкой, которая проясняет ситуацию.

Когда это изменение будет выполнено, оно, скорее всего, сломает некоторые сценарии и дополнения снова.

В том же посте указано, что делать:

Есть две вещи, которые можно сделать, чтобы предотвратить это:

1) Включите параметр «Изменить после отправки» вручную в формах, которые вы хотите с этой функцией.
2) В вашем коде Apps Script используйте setAllowResponseEdits () метод, чтобы включить этот параметр, когда вы знаете, ваш код требует этого.

...