Могу ли я запустить скрипт из формы Google БЕЗ таблицы? - PullRequest
0 голосов
/ 12 февраля 2020

На самом деле я не хочу хранить свои ответы в форме в электронной таблице, я просто хочу отправить мне электронное письмо с результатами (а затем, возможно, подключиться к API curl, чтобы добавить его в мою CRM)

У меня это работает, если я использую в качестве электронной таблицы, но не могу сделать это, просто используя код в форме?

При использовании

function onFormSubmit(e)

я просто получаю е не определено.

Заранее спасибо

Бен

Ответы [ 2 ]

2 голосов
/ 12 февраля 2020

Мы можем напрямую добавить наш скрипт в форму Google.

Нам не нужно обязательно сохранять ответы в листе Google для запуска сценариев.

Шаги:

  1. Go в форму Google
  2. Go в Параметры (3 вертикальные точки)
  3. Редактор сценариев
  4. Добавьте туда свой сценарий
0 голосов
/ 12 февраля 2020

Связать их с электронной таблицей - это простой способ настроить ее, и если вы потеряете ее, она всегда будет в электронной таблице. Если вы хотите получить электронную почту для каждого подразделения. Вы можете использовать триггер onFormSubmit.

объект события отправки формы

Вы можете создать триггер с помощью этого:

function createOnFormSubmitTrigger(funcname) {
  var ss=SpreadsheetApp.getActive();
  if(!isTrigger(funcname)) {
    ScriptApp.newTrigger(funcname).forSpreadsheet(ss.getId()).onFormSubmit().create()
  }
}

Это помогает запретить вам создавать более одного триггера для данной функции ..

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for(var i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

Это может быть простой способ заставить электронную почту произойти.

function emailme(e) {
  var keys =Object.keys(e.namedValues);
  var msg="";
  for(key in e.namedValues) {
    msg+=Utilities.formatString('\n%s: %s ',key,e.namedValues[key]);
  }
  GmailApp.sendEmail('your email address', "Form submission", msg)
}

Справочник Gmail

Запустите это один раз, чтобы связать скрипт emailme с триггером onFormSubmit.

function makeTrigger() {
  createOnFormSubmitTrigger('emailme')
}
...