Как получать данные от сторонних сервисов — создаем вебхук с помощью Google Apps Scripts > NetPeak - Независимость и осознанность
NetPeak Biz Tech    


Как получать данные от сторонних сервисов — создаем вебхук с помощью Google Apps Scripts

Как получать данные от сторонних сервисов — создаем вебхук с помощью Google Apps Scripts

< >

При внедрении бизнес-процессов важно получать данные от внешних сервисов при наступлении того или иного события — это может быть передача данных из CRM-систем, сервисов оплаты, систем аналитики, интернет-магазинов. В большинстве таких случаев вам нужен вебхук.

Вебхук (webhook) — механизм получения уведомлений о происходящих в системе событиях с помощью функций обратных вызовов. Когда случается интересующее клиента событие, сервер отправляет HTTP-запрос на URL-адрес, предоставленный клиентом для приема вебхуков.

Если вам нужно оперативно обработать полученные через вебхук данные, можно воспользоваться настройкой вебхука в Google Apps Scripts.

Вначале необходимо создать новый проект. Сделать это можно несколькими способами:

  1. Перейти в панель создания скриптов и кликнуть «Создать проект».
  2. Создать пустую таблицу Google Spreadsheets и выбрать в меню «Инструменты» — «Редактор скриптов».

Дайте название вашему проекту. По умолчанию вам будет предоставлен файл Код.gs и создана пустая функция myFunction(). В этой среде будем обpaбатывать данные, полученные от внешней системы. Как же наш код примет эти данные? Для этого мы развернем скрипт как веб-приложение, которому будет выделен публичный веб-адрес. 

В меню выбираем «Опубликовать» — «Развернуть как веб-приложение».

Указываем текущую версию нашего приложения, например, v1.0. Выполнение скрипта оставляем из-под нашего аккаунта. В поле “Who has access to the app” выбираем “Anyone, even anonymous”:

Жмем Deploy. Копируем сгенерированный URL.

Обратите внимание, что были сгенерированы два URL-адреса: текущий URL нашего веб-приложения, который заканчивается сегментом /exec и тестовый URL под анкором latest code, который заканчивается сегментом /dev. Первый URL — рабочий, который и будет играть роль вебхука.

Любые изменения в скрипте потребуют повторного деплоя с указанием новой версии. Если же вы хотите наблюдать за результатом своих изменений, не меняя каждый раз версию скрипта, используйте тестовый URL, который будет всегда запускать последний сохраненный код.

Наше приложение развернуто, и мы можем принимать данные извне. Однако, если вы откроете URL в браузере, вы столкнетесь с ошибкой: «Не удалось найти функцию скрипта: doGet».

Так происходит, потому что в нашем скрипте пока нет функций, которые перехватывали бы полученные данные. Для этого в GAS предусмотрено два зарезервированных метода: doGet() и doPost(), которые отвечают за получение значений, отправленных с помощью GET и POST запросов соответственно. 

Оба метода принимают переменную «e», благодаря которой можно получить доступ к значениям.

Формат, в котором эта переменная предоставляет данные — JSON. С полным перечнем доступных полей можно ознакомиться в документации в разделе Request Parameters. Нас интересует поле e.parameter, через которое мы и будем получать значения необходимых параметров. Возникает вопрос: к каким переменным обращаться?

Набор параметров, который внешняя система будет отправлять на ваш URL, зачастую предусмотрен самой системой и приведен в документации по использованию вебхуков. Если вы не желаете получать абсолютно все возможные переменные, некоторые сервисы позволяют вам выбирать интересующие поля из общего множества.

Например, при настройке вебхука в сервисе UptimeRobot на мой URL будут отправлены данные:

В итоге, внутри метода doGet(e) я могу обратиться к любому из вышеперечисленных полей: e.parameter.monitorUrl, e.parameter.alertType, e.parameter.alertDetails и так далее. Всё это работает и для метода doPost(e).

Есть объект parameter, а есть объект parameters. Отличие в том, что каждый ключ в parameters содержит соответствующий массив значений, в то время как каждый ключ в parameter — только единичную величину.

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

Вывод данных в таблицу Google Spreadsheets

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

function doGet(e) { writeToGoogleSpreadsheet(e.parameter) ;}function writeToGoogleSpreadsheet(params) { var spreadsheet = SpreadsheetApp.openById(\"id_of_my_google_spreadsheet\") ; var sheetData = spreadsheet.getSheetByName(\\\'Data\\\') ; sheetData.appendRow([ params.monitorURL, params.alertType, params.alertDetails ]) ;}

Настройка оповещений через бота Telegram

Как создать чат-бот для Telegram-канала — инструкция для администраторов Этот способ удобен тем, что будет уведомлять вас о совершенной конверсии или наступлении другого события в режиме реального времени с помощью бота Telegram.

Чтобы создать своего бота, просто напишите пользователю @BotFather и следуйте его инструкциям. Как только вы создали бота и получили свой ключ (токен) авторизации, переходите в раздел документации Bot API, чтобы выполнить необходимые настройки. Для отправки сообщений нам понадобится api-метод sendMessage(), который принимает следующие параметры: chat_id (в данном случае ваш персональный ID в телеграм), text — передаваемое сообщение и (опционально) parse_mode — формат, в котором отправляем сообщение. Бот @my_id_bot подскажет ваш персональный айди.

function doGet(e) { sendToTelegram(e.parameter) ;} function sendToTelegram(params) { var token = \"your_telegram_bot_token\"; var telegramUrl = \"https://api.telegram.org/bot\" + token; var id = \"your_telegram_chat_id\"; var text = \"<pre>\" + params.monitorUrl + \" \" + params.alertDetails + \"pre>\"; var url = telegramUrl + \"/sendMessage?chat_id=\" + id + \"&parse_mode=html&text=\" + text; var response = UrlFetchApp.fetch(encodeURI(url)) ;}

Отправка данных на почту

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

function doGet(e) { sendMail(e.parameter) ;}function sendMail(params) { var emailAddress = \"my-account@gmail.com\"; var message = \"Domain \" + params.monitorUrl + \" \" + params.alertDetails; var subject = \"Alert: problem with domain \" + params.monitorUrl; MailApp.sendEmail(emailAddress, subject, message) ;}

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

Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:

Истории бизнеса и полезные фишки



Комментарии:

Long-tail SEO — как продвигаться по низкочастотным запросам и зачем это нужно

Long-tail SEO — как продвигаться по низкочастотным запросам и зачем это нужно Относящиеся к низкочастотным long-tail запросы при правильном подходе могут стать эффективным инструментом для увеличения трафика. Рассказываем почему, а главное — как....

23 05 2025 6:26:14

«Цена? Ответили в direct». Почему магазины в Instagram скрывают цены?

«Цена? Ответили в direct». Почему магазины в Instagram скрывают цены? Пишите стоимость товара под постами. Но это не универсальный совет. Если ваша ниша с длинным циклом продаж, можно сделать исключение. Что ещё нужно знать про ответ в директ? Узнать!...

22 05 2025 14:18:30

Сколько стоил клик в Google Ads в Казахстане в первом квартале 2020 года — исследование Netpeak

Сколько стоил клик в Google Ads в Казахстане в первом квартале 2020 года — исследование Netpeak Важно: понимания стоимость конверсии и необходимое количество конверсий, вы можете прогнозировать, сколько денег на рекламу нужно выделить. Вот почему вам может быть полезно это исследование. Читать....

21 05 2025 23:33:38

Текст для главной страницы сайта — правила, требования и примеры

Текст для главной страницы сайта — правила, требования и примеры Как понравиться поисковым системам и пользователям....

20 05 2025 14:32:34

Инфографика: как именно рулит контент

Инфографика: как именно рулит контент Консультант по маркетингу в зоне ru Екатерина Решетило написала пост о том, как правильно настроить стратегический контент-маркетинг для долгосрочных продаж...

19 05 2025 14:39:55

Кейс по снятию автоматического фильтра Яндекса: возврат трафика за 44 дня

Кейс по снятию автоматического фильтра Яндекса: возврат трафика за 44 дня На одном из проектов был успешный рост трафика и транзакций, но в следующем месяце видимость по Яндексу снизилась до 30% и продолжала жестоко падать. ТИЦ упал с 450 до 425....

18 05 2025 19:52:48

PPC на украинском. Как языковой закон влияет на контекстную рекламу

PPC на украинском. Как языковой закон влияет на контекстную рекламу Языковой закон требует, чтобы общение бизнеса с клиентами шло на украинском языке, если нет просьбы о другом приемлемом варианте. Что это означает для РРС, читайте дальше....

17 05 2025 1:29:37

Перенос кампании из Google Ads в Яндекс.Директ с помощью таблиц Google

Перенос кампании из Google Ads в Яндекс.Директ с помощью таблиц Google Таблицы Google позволят перенести рекламную кампанию и сохранить при этом ключевые слова в разных типах соответствия. Подробный мануал — в новом посте....

16 05 2025 0:15:51

Какие виды гeймификации можно использовать в рассылках

Какие виды гeймификации можно использовать в рассылках Игровой формат отлично работает в email-рассылке. Но какой вид гeймификации интересен любой целевой аудитории? Давайте рассмотрим примеры....

15 05 2025 9:48:20

Что такое Server-side tracking

Что такое Server-side tracking И чем этот тип отслеживания событий отличается от Client-side. Узнать!...

14 05 2025 13:47:30

SEO на этапе разработки сайта: как увеличить ROMI до запуска площадки

SEO на этапе разработки сайта: как увеличить ROMI до запуска площадки Время, потраченное на исправление ошибок, допущенных на этапе подготовки и создания сайта, убивает потенциал роста видимости ресурса....

13 05 2025 20:34:54

Типы соответствия ключевых слов в Google Рекламе и Яндекс.Директ — подробная инструкция

Типы соответствия ключевых слов в Google Рекламе и Яндекс.Директ — подробная инструкция Как разобраться в типах соответствия ключевых слов и определить, что минус-слова блокируют показы нужных ключевых слов....

12 05 2025 14:14:43

Как вернуть украденный аккаунт Instagram

Как вернуть украденный аккаунт Instagram Короткий кейс и рекомендации по защите аккаунта от взлома....

11 05 2025 7:32:26

17 тезисов о том, как инвестировать в интернет-маркетинг

17 тезисов о том, как инвестировать в интернет-маркетинг Артем Шевченко (Epicentr), Михаил Рогальский (Monobank), Максим Дмитров (BSH Hausgeräte), Андрей Чумаченко (Netpeak) и другие участники конференции 8Р о том, как они рассчитывают инвестиции в интернет-маркетинг....

10 05 2025 9:22:31

Шесть блестящих примеров видеоконтента в B2B (и почему они так хороши)

Шесть блестящих примеров видеоконтента в B2B (и почему они так хороши) Перевод статьи Никки Джиллиленд из Econsultancy об уроках для маркетологов про то, каким должно быть хорошее видео. Узнайте 4 правила эффективного видеоконтента прямо сейчас!...

09 05 2025 12:52:57

Семь улучшений Netpeak: новые стратегии email-маркетинга, антикризисная PPC-стратегия Start и продвижение недвижимости

Семь улучшений Netpeak: новые стратегии email-маркетинга, антикризисная PPC-стратегия Start и продвижение недвижимости Что нового, Netpeak? Новые стратегии контекстной рекламы и email-маркетинга, новая рубрика в блоге, а также о специфике работы отдела продаж Netpeak в карантин и о законах построения партнерской программы — всё читайте в материале!...

08 05 2025 23:26:29

Как улучшить показатель качества в Google Ads

Как улучшить показатель качества в Google Ads Раскрываем тайны показателя качества в рекламе гугл с помощью API...

07 05 2025 14:17:14

Семь улучшений Netpeak: итоги года и цели на 2017

Netpeak подводит итоги 2016 года и делится планами на будущее....

06 05 2025 3:14:14

Что такое фишинговая ссылка и как проверить сайт на её наличие

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

05 05 2025 9:59:27

Лайфхаки по работе с Google Chrome

Лайфхаки по работе с Google Chrome Расширения, горячие клавиши и мгновенный перевод слов на другой язык — минимум лайфаков, которые можно использовать для удобства пользователей Google Chrome...

04 05 2025 18:38:43

Как увеличить количество звонков с сайта: кейс Callback от Ringostat

Как увеличить количество звонков с сайта: кейс Callback от Ringostat Callback от Ringostat: пример того, как увеличить конверсии с помощью формы заказа обратного звонка...

03 05 2025 20:54:55

Как запустить онлайн марафон? Бесплатные и платные методы

Как собрать свой онлайн марафон на 500 или 1000 человек? Сколько это стоит и какие сервисы использовать. Давайте разбираться....

02 05 2025 3:55:15

SEO в стиле mobile-friendly: FAQ по новому фактору ранжирования

SEO в стиле mobile-friendly: FAQ по новому фактору ранжирования 21 апреля Google официально начнет учитывать совместимость с мобильными девайсами в качестве одного из факторов ранжирования сайта в мобильном поиске. Что это значит для владельцев сайтов и вебмастеров? Мы подготовили небольшой FAQ по теме для рубрики «SE...

01 05 2025 4:57:34

Что такое краулинг и как управлять роботами

Что такое краулинг и как управлять роботами Наука перехода — понятие краулинга (crawling, сканирование) сайта и принципа его работы. Виды поисковых роботов и способы их управления и другие полезные фишки в рубрике Азбука SEO на Netpeak Blog...

30 04 2025 12:40:38

Продвижение Telegram-канала с помощью агентства Netpeak: чтоооооо???

Продвижение Telegram-канала с помощью агентства Netpeak: чтоооооо??? Новая услуга для бизнесов, которым большое количество подписчиков не приносит продаж...

29 04 2025 4:57:40

Продвинутые способы аналитики кампаний на Facebook — Инспектор и внутренние диаграммы

Узнайте, как пользоваться Инспектором и внутренними диаграммами Facebook, чтобы быть в лидерах своей ниши!...

28 04 2025 8:42:31

Зачем рассказывать о своем бизнесе в интернете. Рассуждения скромного предпринимателя

Если вы до сих пор сомневаетесь — прекратите это и делитесь своим опытом с читателями, потенциальными клиентами, инвесторами и партнерами. Узнать больше!...

27 04 2025 6:34:43

Как объединить источники данных в Google Data Studio

Как объединить источники данных в Google Data Studio Как пользоваться «Совмещением данных» с учетом всех особенностей инструмента...

26 04 2025 21:12:33

Кейс по контекстной рекламе в тематике «языковые курсы»

Кейс по контекстной рекламе в тематике «языковые курсы» Филиалы курсов в Таллине, Москве, Днепропетровске. Оказывается, нельзя так просто взять и посчитать ROMI (возврат маркетинговых инвестиций) в этой тематике....

25 04 2025 12:32:52

Как рекламировать в гугл игры мужчинам и женщинам гeймерам

Как рекламировать в гугл игры мужчинам и женщинам гeймерам Что нужно учесть при создании баннеров для разных аудиторий...

24 04 2025 3:31:43

Measurement Protocol — подключаем офлайн-бизнес к Google ***ytics

Measurement Protocol — подключаем офлайн-бизнес к Google ***ytics Measurement Protocol — метод передачи данных о продажах или любых других взаимодействиях с покупателями на сервера Google ***ytics пpaктически из любого источника: внутренней CRM-системы, базы данных и даже платежного терминала...

23 04 2025 16:27:49

Как делать цепляющую email-рассылку: советы экспертов

Как делать цепляющую email-рассылку: советы экспертов Рассказываем про маркетинговые техники продающих email рассылок...

22 04 2025 4:24:37

Клиент пришел на сайт из Facebook и оставил заявку в чате — как это отследить

Клиент пришел на сайт из Facebook и оставил заявку в чате — как это отследить Как считать конверсии из Facebook, когда они происходят в Jivosite и Битрикс24....

21 04 2025 16:36:27

Как отслеживать конверсии в Google Рекламе

Как отслеживать конверсии в Google Рекламе В арсенале Google Рекламы есть очень ценный инструмент — отслеживание конверсий....

20 04 2025 10:42:36

Как найти упущенную семантику: кейс сервиса Serpstat (ex. Prodvigator)

Как найти упущенную семантику: кейс сервиса Serpstat (ex. Prodvigator) Упущенная семантика — это ключевые фразы, которые успешно используют в SEO и PPC ваши основные конкуренты, но не используете вы. Как найти упущенную семантику? Читайте кейс сервиса Prodvigator....

19 04 2025 15:12:55

Как привлечь инвестиции cерии A — руководство для владельцев бизнеса

Как привлечь инвестиции cерии A — руководство для владельцев бизнеса Как заинтересовать инвесторов, сколько времени это займет, а также стратегии поиска....

18 04 2025 17:58:35

Деcять неочевидных и пpaктически применимых PPC-фишек — круглый стол 8P 2018

Деcять неочевидных и пpaктически применимых PPC-фишек — круглый стол 8P 2018 Проверенные лайфхаки по платному трафику от спикеров и участников конференции 8P 2018...

17 04 2025 12:34:14

CEO of Ringostat Александр Максименюк: кому и зачем нужен Call Tracking

CEO of Ringostat Александр Максименюк: кому и зачем нужен Call Tracking 79% владельцев смартфонов, если верить Google, используют их для покупок или заказов услуг. Это более двух миллиардов человек. Ничего удивительного, что даже Google запустил собственный сервис Call Tracking. Кому и зачем жизненно важно отслеживать звонки...

16 04 2025 21:35:34

10 ярких примеров контент-маркетинга в аграрной индустрии

Полезный и интересный контент — это лучший крючок, который помогает привлечь новых клиентов на аграрном рынке и удержать их внимание....

15 04 2025 20:45:54

Как создать YouTube канал для бренда

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

14 04 2025 20:18:58

Продвижение мобильного приложения — шпаргалка для строителей воронок продаж

Продвижение мобильного приложения — шпаргалка для строителей воронок продаж С помощью этой шпаргалки вы легко распределите акценты и начнете последовательно внедрять маркетинговую стратегию по продвижению мобильного приложения...

13 04 2025 21:22:40

Трендовые инструменты в диджитал-маркетинге и рекламе — новое исследование Gartner

Трендовые инструменты в диджитал-маркетинге и рекламе — новое исследование Gartner В 2019 году в цикл зрелости вошли 28 технологий и инструментов...

12 04 2025 15:39:27

Seznam, откройся: подробное руководство по настройке контекстной рекламы в Чехии

Seznam, откройся: подробное руководство по настройке контекстной рекламы в Чехии Seznam.cz — одна из пяти поисковых систем в мире, сумевших в отдельно взятой стране стать популярнее Google...

11 04 2025 18:58:10

Как бренды по-злому шутят в рекламе

Как бренды по-злому шутят в рекламе 5 примеров маркетингового троллинга. Сатира, ирония, пародия — все эти приемы в рекламе помогают брендам выделиться среди конкурентов. Если их правильно использовать, конечно, это отличный способ привлечь клиентов и создать запоминающийся образ бренда...

10 04 2025 21:49:29

Топ-25 телеграм-каналов о веб-дизайне, на которые стоит подписаться

Топ-25 телеграм-каналов о веб-дизайне, на которые стоит подписаться Тренды, рекомендации, уроки, инструкции, а также вакансии, идеи, кейсы и всё, что поможет оставаться в теме, находить интересные проекты и вдохновляться. Читать дальше....

09 04 2025 17:28:39

Макс Бурцев (Arriba) про большие идеи для брендов

Суть бренда на одном дыхании: о рекламе с любовью. Изначально под большой идеей мы пониманием ту пользу, которую несет бренд в окружающий его мир. Помимо этого, большая идея — это те «рельсы», по которым будут ехать все коммуникации бренда в течение нескольких лет...

08 04 2025 19:52:29

Как написать follow up, чтобы от него был результат?

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

07 04 2025 2:44:33

13 фишек маркетинга и продвижения проектов за рубежом — круглый стол 8P 2017

13 фишек маркетинга и продвижения проектов за рубежом — круглый стол 8P 2017 «Нет, нам нужна раскрутка и точка!» Список маркетинговых пpaктически применимых фишек....

06 04 2025 22:34:13

120 пунктов продающей мобильной версии сайта — чек-лист

120 пунктов продающей мобильной версии сайта — чек-лист Пора сделать так, чтобы мобильная версия сайта приносила прибыль....

05 04 2025 7:21:25

Как поисковые системы индексируют сайт

Как поисковые системы индексируют сайт Система индексирования страниц — как поисковик и его роботы разбирают перечень контента по полочкам...

04 04 2025 2:48:10

Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::