Скрипт Google Apps: как получить доступ или позвонить "Отправить эту форму другим"?

У меня есть форма, прикрепленная к электронной таблице Служб Google. Это форма, позволяющая моим коллегам представлять пункты повестки дня на нашей еженедельной обзорной встрече. Я пишу сценарий для автоматической отправки напоминания соответствующим людям.

Чтобы сделать его менее раздражающим и утомительным для них, я бы хотел вставить форму в электронное письмо. Документы Google позволяют вручную отправлять форму: электронная таблица> Форма> Отправить форму. Тем не менее, я не могу найти в документации по Google Apps Scripts какой-либо способ, с помощью которого можно активировать эту функцию, например:

  • Такой метод, как sendFormInEmail
  • Доступ к удобной для электронной почты форме HTML, которую я могу назначить аргументу htmlBody метода sendEmail.
  • Запустить произвольный пункт меню в Службах Google
  • Что-то другое?

Я мог бы обойти эту проблему, извлекая сгенерированный HTML из электронного письма и назначая его в качестве аргумента htmlBody, но тогда мне пришлось бы вручную обновлять HTML каждый раз, когда мы хотим внести изменения в форму - не то, что я хочу бывает.

Какие-либо предложения?

2 ответа

Йорис, ты прав. Вы можете использовать метод fetch() для отправки html формы в почтовый ящик пользователя:

var form = FormApp.create('New Form');
....
var url = form.getPublishedUrl();
var response = UrlFetchApp.fetch(url);
var htmlBody = HtmlService.createHtmlOutput(response).getContent();
    MailApp.sendEmail({
    to: email,
    subject: subject,
    htmlBody: htmlBody,
  });
...

У меня точно такое же требование, как и у вас, но, к сожалению, похоже, что API-вызова для этого не существует.

Я думаю, что может сработать (хотя я еще не попробовал это на самом деле), это использовать метод Spreadsheet.getFormUrl для получения URL-адреса формы, затем использовать UrlFetchAp.fetch для получения HTML-кода для формы электронной таблицы, а затем использовать этот HTML-код в качестве тело электронной почты.

Как я уже сказал, я не знаю, сработает ли это (хотя на бумаге это должно быть!), Но мне было бы очень интересно узнать, сработало ли это!

Другие вопросы по тегам