Как получать данные от сторонних сервисов — создаем вебхук с помощью 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) ;}

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

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

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



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

Как email-рассылки принесли ceкc-шопу 20% дохода

Как email-рассылки принесли ceкc-шопу 20% дохода Кейс выполнимой миссии — отправили рассылку по «холодной» базе и обошли запреты почтовых сервисов на изображения 18+...

13 02 2025 14:33:34

Почему в США зарплаты СЕО приводят к дополнительным налогам?

Почему в США зарплаты СЕО приводят к дополнительным налогам? Как борьба с зарплатным неравенством становится трендом...

12 02 2025 0:30:15

Почему не получается запустить товарные объявления

Разбор типичных ошибок в рекламе Google Shopping как обязательного инструмента рекламы в Google. О минус-словах, геолокации, структуре сайта и обновлении объявлений. Что именно важно? Читайте дальше!...

11 02 2025 22:23:54

Кейс по контекстной рекламе в тематике «детская обувь»: ROMI 110%

Кейс по контекстной рекламе в тематике «детская обувь»: ROMI 110% Магазин детской обуви: конкретные цифры в кейсе по продвижению....

10 02 2025 16:32:24

Четыре полезных оповещения в Google ***ytics

Бывают случаи, когда код Google ***ytics перестает вообще собирать статистику. Чтобы выявить сбой вовремя, обязательно настройте эти оповещения....

09 02 2025 22:49:29

Фандрайзинг — руководство по привлечению инвестиций в стартап

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

08 02 2025 20:26:35

White paper: что за маркетинговый зверь?

Хороший пост с примерами продающих «Белых книг»....

07 02 2025 9:24:19

Как настроить передачу уведомлений из Google Calendar в Telegram

Как настроить передачу уведомлений из Google Calendar в Telegram Мануал по созданию удобного планировщика повторяющихся действий....

06 02 2025 6:37:29

Как добавить время работы в объявления Google Ads

Как добавить время работы в объявления Google Ads Google внедрил новую возможность выделить объявление — автоматическое добавление часов работы. Давайте разберемся, как добавить эту полезную информацию в расширения объявлений...

05 02 2025 11:49:45

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

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

04 02 2025 12:58:30

Slow-маркетинг — моя ласковая, нежная рутина

Slow-маркетинг — моя ласковая, нежная рутина Сделать «на вчера», «внезапно», протестировать все варианты. Стоп! Остановитесь и выдохните. Be slow...

02 02 2025 8:49:34

Как обойти агрегаторы и маркетплейсы в выдаче: пошаговая инструкция

Как обойти агрегаторы и маркетплейсы в выдаче: пошаговая инструкция Доминирование маркетплейсов и агрегаторов в Яндексе усилилось. Первый магазин появляется не раньше 5 позиции. Поэтому компания Alto подготовила пошаговое руководство - как обойти агрегаторы в выдаче....

01 02 2025 8:53:10

Двенадцать веселых докладов TED Talks на различные темы

Двенадцать веселых докладов TED Talks на различные темы Идеи, достойные распространения. Какие доклады TED Talks повлияли на нетпиковцев....

31 01 2025 7:45:41

Как работать с Universal App Campaigns в Google Ads

Как работать с Universal App Campaigns в Google Ads О новых функциях Universal App Campaigns — специально для тех, кто хочет эффективно вовлекать пользователей приложений...

30 01 2025 17:11:22

Как добавить видео на Youtube с телефона. Пошаговая инструкция

Как добавить видео на Youtube с телефона. Пошаговая инструкция Будь мобильным — заливай видео на Youtube с телефона...

29 01 2025 3:55:45

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

Сколько стоил клик в Google Ads в Украине в третьем квартале 2020 года — исследование Netpeak Данные, приведенные в исследовании, помогут в составлении медиапланов по продвижению в интернете. Понимания стоимость конверсии и необходимое количество конверсий, вы можете прогнозировать, сколько денег на рекламу нужно выделить....

28 01 2025 16:57:42

Что такое мотивированные установки и стоит ли тратить на них деньги

Что такое мотивированные установки и стоит ли тратить на них деньги Откуда берутся установки и стоит ли тратить деньги на покупку мотивов...

27 01 2025 18:47:12

Неочевидные причины блокировки аккаунта в Google Merchant Center

Неочевидные причины блокировки аккаунта в Google Merchant Center Как без проблем пересылать данные в Google Покупки....

26 01 2025 12:22:57

Креативное SEO: нестандартные методы продвижения для всех типов сайтов

Креативное SEO: нестандартные методы продвижения для всех типов сайтов Правильное продвижение сайта и нестандартные предложения по привлечению трафика...

25 01 2025 13:57:36

Что такое ASO и как правильно продвигать мобильное приложение

Что такое App Store optimization и как раскручивать мобильные приложения...

24 01 2025 22:27:37

Кейс — как увеличить трафик блога юридического сайта на 50 000% с помощью SEO

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

23 01 2025 2:49:22

Сколько стоил клик по рекламе Ads и Директ в Казахстане во втором квартале 2017

Хотите узнать, сколько стоит клик в вашей тематике? Как эффективно распределить рекламный бюджет? В этом исследовании я изучил, сколько стоил клик в Google Ads и Яндекс.Директ в Казахстане...

22 01 2025 10:47:14

Как загрузить данные из API Google ***ytics в R: часть 2

Пример использования пакета google***yticsR от Марка Эдмондса...

21 01 2025 13:39:23

Нестандартное мышление в бизнесе. Украинские предприниматели, которые умеют удивлять

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

20 01 2025 6:55:13

Прогнозируем поисковую активность в Яндексе с помощью Wordstat и Google Таблиц

Прогнозируем поисковую активность в Яндексе с помощью Wordstat и Google Таблиц Аналитик Алексей Селезнев описал простой алогритм прогнозирования поисковой активности пользователей в Яндексе....

19 01 2025 22:22:11

Тайм-менеджмент. Обзор мастер-класса Глеба Архангельского

Зачем нужен мемуарник, как отличить истинные цели от навязанных и многое другое....

18 01 2025 3:25:17

30+ мясных Telegram-каналов по digital-маркетингу: что читать новичку и опытному бизнесмену

30+ мясных Telegram-каналов по digital-маркетингу: что читать новичку и опытному бизнесмену Мы собрали 30+ Телеграм-каналов, где вы найдете только полезную и актуальную информацию про маркетинг, SEO, SMM, веб-аналитику и развитие бизнеса...

17 01 2025 11:56:21

Анализ ссылочной массы с помощью Ahrefs и Serpstat

Краткое сравнение двух инструментов и третьего на закуску....

16 01 2025 8:23:35

Как импортировать данные в Google ***ytics

Обо всех способах передачи данных из несвязанных с сайтом источников, а также о ручной передаче данных...

15 01 2025 14:30:45

5 инструментов для проверки юзабилити интернет-магазина

5 инструментов для проверки юзабилити интернет-магазина Несложные рекомендации, как увеличить продажи с сайта и его мобильной версии с помощью инструментов Google: ***ytics, Tag Manager, Optimizer и форм-опросов. UX-специалисты Турум-бурум рекомендуют их для проверки сайта и используют в своей работе....

14 01 2025 16:20:32

Оформляем товарную страницу: пять фишек для интернет-магазинов

Оформляем товарную страницу: пять фишек для интернет-магазинов Пять простых фишек для повышения привлекательности карточки товара....

13 01 2025 21:38:44

Теги alternate, hreflang, media, type — зачем и как их использовать

Теги alternate, hreflang, media, type — зачем и как их использовать О важных для разметки сайта тегах — alternate, hreflang, media, — и как их грамотно использовать при продвижении....

12 01 2025 16:46:37

Какие инструменты использовать веб-аналитику, кроме Google ***ytics и Яндекс.Метрики

Какие инструменты использовать веб-аналитику, кроме Google ***ytics и Яндекс.Метрики Как решить все задачи и не изобретать велосипед. Мы оторвались от отчетов в Google ***ytics и Яндекс.Метрике и посмотрели в сторону менее популярных инструментов для веб-аналитики. Узнайте больше!...

11 01 2025 12:24:14

К чему быть готовым продавцам одежды и обуви — пример тематической стратегии Netpeak

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

10 01 2025 17:55:32

Как создать чат-бот для Telegram-канала — инструкция для администраторов

Как создать чат-бот для Telegram-канала — инструкция для администраторов Как с помощью ботов ControllerBot и BotFather упростить управление каналами и разнообразить контент....

09 01 2025 23:25:55

Как я получил 39% ответов после холодной рассылки 100 самым влиятельным экспертам в мире B2B-продаж

Как я получил 39% ответов после холодной рассылки 100 самым влиятельным экспертам в мире B2B-продаж Образец рассылки от создателе Replyapp.io Олег Белозор, на которую ответили самые влиятельные эксперты в мире в2в продаж...

08 01 2025 22:10:23

Netpeak Agency SEO Tool: обзор и фишки для специалистов

Netpeak Agency SEO Tool: обзор и фишки для специалистов Как расширение от Netpeak может облегчить работу над важными SEO-задачами....

07 01 2025 15:28:55

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

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

06 01 2025 8:55:29

Исследование — сколько стоил клик в Яндекс.Директ в Казахстане во втором квартале 2021 года

Исследование — сколько стоил клик в Яндекс.Директ в Казахстане во втором квартале 2021 года Используйте эти данные в составлении медиапланов. Зная стоимость клика в тематике или регионе, коэффициент конверсии на сайте, вы можете оценить объем инвестиций в рекламу и прогнозировать стоимость конверсии. Читать дальше!...

05 01 2025 14:21:59

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору

Мобильные приложения: как собрать данные на этапе MVP, чтобы было с чем идти к инвестору Как протестировать MVP мобильного приложения, получить обратную связь и сформировать гипотезы...

04 01 2025 19:55:26

Рекламный кабинет в Facebook — пять фишек для упрощения работы

Рекламный кабинет в Facebook — пять фишек для упрощения работы Возможности для специалистов по рекламе в Facebook, о которых знают далеко не все. Подробности — тут....

03 01 2025 8:10:24

Ведем паблик Facebook в режиме новостного медиа. MVP-эксперимент Netpeak Journal

Ведем паблик Facebook в режиме новостного медиа. MVP-эксперимент Netpeak Journal У нас было 500 вечнозеленых постов и желание понять алгоритм ленты Facebook....

02 01 2025 8:18:49

Techtober: что показали Apple, Google и Samsung.

Techtober: что показали Apple, Google и Samsung. Apple, Google и Samsung — давайте вспомним новинки месяца....

01 01 2025 8:48:19

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

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

31 12 2024 12:51:51

Какой таргетинг выбрать для объявлений в Google Ads

Какой таргетинг выбрать для объявлений в Google Ads Большинство рекламодателей знают и используют только 4-5 видов таргетинга, а остальные оставляют без внимания. А ведь правильно подобранная аудитория — это один из залогов успеха рекламной стратегии. Поэтому обязательно тестируйте новые таргетинги...

30 12 2024 7:22:52

AMP-письма: что это, чем полезны, примеры лучших писем

AMP-письма: что это, чем полезны, примеры лучших писем Как создавать интеpaктивные рассылки-сайты и чем они хороши...

29 12 2024 6:35:59

Синтаксис, виды и параметры UTM-меток — как правильно отследить трафик

Синтаксис, виды и параметры UTM-меток — как правильно отследить трафик UTM-метки позволяют эффективно отслеживать источники трафика. Но составлять их нужно правильно. Как именно, давайте разбираться....

28 12 2024 10:15:29

Каким должен быть дизайн продающей страницы

Каким должен быть дизайн продающей страницы Обязательные элементы продающей страницы: удобный и красивый дизайн, легко читаемые форматы и стили шрифтов, текстовые блоки, кнопки призыва к действию. Узнать больше!...

27 12 2024 1:41:42

Как разработать графический интерфейс для скриптов R

Как упростить работу со скриптами на языке R? Программирование удобного интерфейса с помощью пакета «gWidgets»...

26 12 2024 18:20:11

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