Как получить ElementById в Google Apps Script из внешнего Html файла? - PullRequest
1 голос
/ 10 февраля 2020

Я пытаюсь подключить свою форму Html к скрипту Служб Google, чтобы автоматизировать уведомление по электронной почте, а также включить в форму сообщения входные данные. Пример: у меня на сайте есть форма с вводом имени и адреса электронной почты. Посетитель заходит на мой сайт и заполняет форму. Когда посетитель нажимает кнопку «отправить», все, что заполнено во входных данных, сохраняется и отправляется в скрипт Служб Google. Затем в Google Apps Script запускается функция, которая отправляет мне электронное письмо. В теле письма есть входные данные "name" и "email". Это мечта, вот реальность !:

Code.gs (Google Apps Script):

//EMAIL NOTIFICATION
function sendNotification(e) {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  var range = sheet.getActiveRange().getA1Notation();
  var recipients = "myemail@gmail.com";
  var message = '';
  function createSpreadsheetChangeTrigger() {
    var ss = SpreadsheetApp.getActive();
    ScriptApp.newTrigger('onFormSubmit')
      .forSpreadsheet(ss)
      .onFormSubmit()
      .create();
  }  
  var subject = 'Client Lead Notification';
  var body = 'You have a new client submission on your Google Sheets spreadsheet' + ss.getUrl();
  MailApp.sendEmail(recipients, subject, body);
};

Html (внешний):

<input id="inputTest" >

<button onclick="storeInputData()">Send</button>

<script>
    function storeInputData()
    {
        var inputData = document.getElementById("inputTest").value;
        document.write("This is " + inputData);
    }
</script>

Мой вопрос: как мне получитьElementById в Google Apps Script так же, как это делается в Html (storeInputData)?

1 Ответ

0 голосов
/ 11 февраля 2020

Вам необходимо встроить форму HTML в WebApp

. Приложения Script Web Apps предоставляют методы, которые обеспечивают связь между клиентскими HTML / Javascript файлами и файл скрипта приложения на стороне сервера.

Особый интерес для вас будет google.script.run, который позволит вам передавать HTML значения элемента в функцию скрипта приложения, пример:

index. html

...
<input id="inputTest" >

<button onclick="storeInputData()">Send</button>

<script>
    function storeInputData()
    {
        var inputData = document.getElementById("inputTest").value;
        google.script.run.passInputData(inputData);
    }
</script>
...

Code.gs

function doGet() {
  return HtmlService.createHtmlOutputFromFile('Index');
}

function passInputData(value) {
  Logger.log(value);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...