Отправляем формы в Гугл таблицы

Привет, мир!

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

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

Для реализации задачи потребуется google apps script и форма обратной связи.

Перейду сразу к делу.

Шаг 1: Создаем новый гугл документ

Тут нам потребуется разметить таблицу под задачу. В моем случае это названия для колонок leadCount ma_name ma_email referer formid send. 

639eb366e44e92a82ae34e210e233946.png

Шаг 2: Переходим к созданию скрипта

В ленте действий Расширения → Apps Script

291ce8196923ea54938e65db16a40891.png

Вместо функции myFunction вставляем код ниже.

function doPost(e){
  const sheet = SpreadsheetApp.getActiveSheet();
  сonst n = sheet.getLastRow() + 1;
  const d = new Date(); 
  sheet.getRange("A"+n).setValue(e.parameter.p1); // leadCount
  sheet.getRange("B"+n).setValue(e.parameter.p2); // ma_name
  sheet.getRange("C"+n).setValue(e.parameter.p3); // ma_email
  sheet.getRange("D"+n).setValue(e.parameter.p4); // refferer
  sheet.getRange("E"+n).setValue(e.parameter.p5); // formid
  sheet.getRange("F"+n).setValue(d);
  return ContentService.createTextOutput().append(JSON.stringify({result: 'comlite'}))
}

Рассмотрим работу скрипта.

function doPost(e) — так гугл будет понимать, что функцию необходимо вызвать при post запросе к скрипту.

const sheet = SpreadsheetApp.getActiveSheet(); — получаем активную таблицу.

сonst n=sheet.getLastRow()+1; — ищем номер следующей пустой строки.

const d = new Date(); — записываем текущую дату в виде дд.мм.гггг.

sheet.getRange("A"+n).setValue(e.parameter.p1); — забираем значение первого параметра из полученного запроса и записываем его в ячейку.

return ContentService.createTextOutput().append(JSON.stringify({result: 'comlite'})) — возвращаем ответ об успешном завершении записи. 

Шаг 3: Развертывание скрипта

Тянемся мышкой к кнопке Начать развертывание → Новое развертывание.

Тип конфигурации → Веб-приложение

fac74e16e558775d08c1f92dc0ab0aaa.png

Запуск → От моего имени (вашапочта@gamil.com)
У кого есть доступ → Все
Нажать на кнопку — Начать развертывание

Гугл попросит разрешение для этого приложения и сообщит, что оно не безопасно, соглашаемся и доверяем приложению. 

Шаг 4: Использование скрипта

После предоставления доступа появится ссылка на использование приложения, ее мы будет использовать для обращения к скрипту и добавления данных.

Ссылка вида https://script.google.com/macros/s/ИДЕНТИФИКАТОР_РАЗВЕРТЫВНИЯ/exec? p1=1&p2=An&p3=rrree@mail.ru&p4=site.ru&p5=form1

где p1, p2, p3, p4, p5 — параметры из скрипта, которые он любезно поместит в таблицу.

Далее нужно отправить POST запрос на этот адрес из формы или из JavaScript. Таким образом, данные формы будут отправлены в гугл таблицу и будут доступны для просмотра.
По сути скрипт сможет работать и с GET запросом, для этого название функции должно быть doGet(), но doGet потребуется для запроса данных и вывода их на страницу.

© Habrahabr.ru