Скрипт 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-код в качестве тело электронной почты.
Как я уже сказал, я не знаю, сработает ли это (хотя на бумаге это должно быть!), Но мне было бы очень интересно узнать, сработало ли это!