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

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

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

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



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

Как за два месяца увеличить количество установок приложения на 43% в AppStore — Кейс Uklon

Как за два месяца увеличить количество установок приложения на 43% в AppStore — Кейс Uklon В одной из самых «перегретых» ниш вышли в топ-5 по некоторым высокочастотным запросам. Узнать больше!...

07 12 2022 3:13:28

15 фишек контекстной рекламы — итоги круглого стола 8P 2019

Работающие способы повысить эффективность рекламных кампаний...

06 12 2022 15:47:26

Сколько стоил клик в Google Ads в первом квартале 2017

Сколько стоил клик в Google Ads в первом квартале 2017 Анализ цены за клик в 25 тематиках и 852 городах Украины, России, Казахстана, Болгарии...

05 12 2022 11:58:15

Как не платить за клики без конверсий?

Как не платить за клики без конверсий? Что нужно сделать, чтобы ваши объявления показывались только заинтересованным клиентам? В первую очередь, подобрать ключевые слова, релевантные запросу потенциального клиента и ориентированные на пользователей с мотивацией совершить действие....

04 12 2022 10:58:55

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

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

03 12 2022 0:26:12

Как мотивировать клиентов оставить отзыв

Как мотивировать клиентов оставить отзыв Лестные отзывы от клинта в интернете невозможно переоценить. Если вы владелец малого бизнеса и только разpaбатываете и внедряете свою маркетинговую стратегию, книга «По рекомендации» будет вам полезной...

02 12 2022 18:54:29

11 вопросов перед заказом коллтрекинга

11 вопросов перед заказом коллтрекинга Какие типы звонков отслеживаются? Есть ли интеграция с Google ***ytics? Существуют ли в выбранном сервисе или на платформе инструменты интеграции с другими системами? Больше вопросов и ответов на них — в статье....

01 12 2022 10:52:50

Аналитика в Твиттер: ссылки, ведущие на сайт

Аналитика в Твиттер: ссылки, ведущие на сайт Короткий прогон сервисов для аналитики активности в Твиттер....

30 11 2022 9:39:53

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

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

29 11 2022 19:24:24

NPS: что такое Net Promoter Score и как начать его считать

NPS: что такое Net Promoter Score и как начать его считать Цель этой статьи — предупредить от опасной ошибки в маркетинге: бездумного и неправильного внедрения NPS-опросника....

28 11 2022 9:12:14

App Campaign for Engagement. Как работать с кампаниями на взаимодействие с приложением в Google Ads

Человек скачал ваше приложение, воспользовался им один раз и … забыл. Что с этим делать, читайте в Netpeak Journal....

27 11 2022 13:53:18

Как работать с Google Trends — подробное руководство для новичков

Как работать с Google Trends — подробное руководство для новичков Успех рекламы во многом зависит от сезонности, популярности тематики и умения оперативно среагировать на тренд. Для этого и существует сервис Google Trends....

26 11 2022 4:55:10

Как привлечь клиентов в 2021 году. Способы лидогенерации, о которых вы могли не знать

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

25 11 2022 12:31:58

Как и зачем переводить рекламные кампании на украинский — эксперимент и полезные формулы

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

24 11 2022 5:54:39

Как перейти на HTTPS и не остаться невидимкой в Google ***ytics

Почему Google ***ytics не видит ссылки на HTTP-сайт с сайта на HTTPS?...

23 11 2022 11:42:46

Universal App Campaign 2.0 в Google Рекламе — как выжать максимум пользы

Universal App Campaign 2.0 в Google Рекламе — как выжать максимум пользы Как сделать рекламу в Universal App Campaign 2.0 максимально эффективной...

22 11 2022 2:46:43

Как добавить 100 000 метатегов на сайт за 5 минут?

Как добавить 100 000 метатегов на сайт за 5 минут? Как SQL-запросы сайтов и Google Sheets освобождают SEO-специалиста от рутины...

21 11 2022 3:40:20

Кейс Taketones: как за год увеличить трафик в 10 раз

Кейс Taketones: как за год увеличить трафик в 10 раз Продвижение музыкальной библиотеки. Со старта сотрудничества, трафик и основной ключ сайта клиента вырос в 10 раз. Регион продвижения — США....

20 11 2022 20:38:45

Netpeak Spider — помощник при составлении технического аудита сайта

Netpeak Spider — помощник при составлении технического аудита сайта Мы запустили еще один полезный инструмент: Netpeak Spider....

19 11 2022 4:36:52

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

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

18 11 2022 21:19:24

Google Tag Manager: актуальные и неочевидные фишки (вторая часть)

Google Tag Manager: актуальные и неочевидные фишки (вторая часть) Как с помощью Google Tag Manager отслеживать исходящие ссылки на сайте и загрузки файлов с него...

17 11 2022 4:48:15

Как создать HTML-карту сайта

Как создать HTML-карту сайта Как построить html-карту. Верстка карт New York Times, IMDb и Daily Mail в качестве примера...

16 11 2022 10:32:13

Измеряем прирост базы подписчиков, как это делают email-маркетологи

Измеряем прирост базы подписчиков, как это делают email-маркетологи Разбираемся, как определить самые эффективные источники лидов....

15 11 2022 8:30:29

Как определить плотность ключевых слов — советы и сервисы

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

14 11 2022 7:50:14

Кейс по продвижению интернет-магазина отопительного оборудования: ROMI 86%

Кейс по продвижению интернет-магазина отопительного оборудования: ROMI 86% Через тернии к кейсу. SEO-продвижение интернет-магазина отопительного оборудования с оплатой за трафик...

13 11 2022 17:58:16

Откуда же берутся скидки в Google Рекламе

Откуда же берутся скидки в Google Рекламе Рекламные заголовки в гугл адвордс так и пестрят предложениями контекстной рекламы бесплатно — вы когда-нибудь задумывались о том, откуда берутся эти «подарки»?...

12 11 2022 13:17:47

Семь отчетов Google ***ytics для анализа вашего блога

Семь отчетов Google ***ytics для анализа вашего блога Один из самых известных отчетов в Google ***ytics «Аудитория/Обзор». Но кроме него есть еще несколько, которые будут весьма полезны для вашего блога. Какие именно, читайте дальше....

11 11 2022 19:54:20

Как сделать динамический ремаркетинг для корпоративного сайта

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

10 11 2022 10:24:43

Симулятор ставок кампании в Google Рекламе

Сергeй Бахарь неустанно исследует Google Рекламу и рассказывает о новинках нашим читателям....

09 11 2022 10:15:34

Как настроить автоматическое обновление отчетности из Google ***ytics, Google Search Console и Serpstat

Как настроить автоматическое обновление отчетности из Google ***ytics, Google Search Console и Serpstat SEO-dashboard для сбора данных в Google-таблицы и отправка отчетов по email. Решение, которое поможет заметить глобальные изменения в потоках трафика. Узнать больше!...

08 11 2022 14:49:44

Как продвигать каршеринг — обзор кейсов

Как продвигать каршеринг — обзор кейсов Особенности продвижения в нише аренды автомобилей по материалам кейсов наших коллег...

07 11 2022 2:48:28

Как добавить микроразметку с помощью Google Tag Manager

Как добавить микроразметку с помощью Google Tag Manager Стоит установить и освоить Google Tag Manager для расширения представления сайта в выдаче...

06 11 2022 0:49:54

Оптимизация скорости сайта: как уменьшить время ответа сервера

Оптимизация скорости сайта: как уменьшить время ответа сервера Как уменьшить время ответа сервера и повысить общий показатель скорости загрузки сайта...

05 11 2022 18:30:39

Действие зеркальных нейронов

Действие зеркальных нейронов зеркальные нейроны и сознание. как они влияют на наше поведение?...

04 11 2022 9:21:27

Зачем нужен медиаплан и как его составить?

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

03 11 2022 23:41:13

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

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

02 11 2022 6:59:45

Микроразметка: что нужно знать SEO-специалисту о словарях и синтаксисе

Микроразметка: что нужно знать SEO-специалисту о словарях и синтаксисе Проверка структурированных данных поисковыми роботами нуждается в нашей поддержке...

01 11 2022 6:20:19

40 шагов к идеальному сниппету — детальный чек-лист

40 шагов к идеальному сниппету — детальный чек-лист Как оптимизировать и выжать максимум пользы из сниппетов сайта в выдаче Google и Яндекс...

31 10 2022 9:45:56

Как ускорить сайт с помощью сервиса CDN — краш-тест Айри

Как ускорить сайт с помощью сервиса CDN — краш-тест Айри Как трафик CDN повлиял на систему интернет-магазина — палим кейсы...

30 10 2022 23:41:46

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

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

29 10 2022 9:23:53

Как определить ключевую метрику LTV перед запуском Apple Search Ads

Как определить ключевую метрику LTV перед запуском Apple Search Ads Расчет прогноза по LTV позволит более точно задать параметры рекламной кампании в Apple Search Ads на начальном этапе. Как это делают в RadASO, читайте в статье....

28 10 2022 21:23:37

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года

Сколько стоил клик Яндекс.Директ и Google Ads в Казахстане в четвертом квартале 2017 года Почти 3 миллиона клика в 24 тематиках в 15 городах Казахстана. Читайте новое исследование нашего аналитика....

27 10 2022 14:31:24

Как быстро перенести кампании в Facebook из одного аккаунта в другой

Экспорт/импорт с помощью Excel-файла или таблиц Google позволит скопировать и перенести кампании, группы объявлений и объявления в Facebook вместе с креативами, текстами, ссылками и utm-метками...

26 10 2022 13:26:24

Как правильно создавать UTM-метки

Как правильно создавать UTM-метки Все, что нужно знать об UTM-метках: зачем использовать, как правильно сгенерить и анализировать....

25 10 2022 10:43:25

MEGOGO, Google, Фокстрот и AIR Brands — как бренды создают эффективный видеоконтент

MEGOGO, Google, Фокстрот и AIR Brands — как бренды создают эффективный видеоконтент Бренды поделились инсайтами на ДиВи Конф — фишки от MEGOGO, Google, TikTok, Banda, McCann, I am IDEA, AIR Brands, Rocket и Фокстрот...

24 10 2022 14:39:58

[SEO настоящего] под микроскопом

[SEO настоящего] под микроскопом [SEO 2.0] — это продукт для бизнеса от Netpeak, он включает в себя принципиально новый подход к продвижению сайтов....

23 10 2022 10:35:16

Epic vs Apple — первый раунд битвы

Epic vs Apple — первый раунд битвы Следим за развитием событий и анализируем решение суда. Читать дальше!...

22 10 2022 4:41:24

Funnel Based модель атрибуции в OWOX BI — руководство по настройке

Funnel Based модель атрибуции в OWOX BI — руководство по настройке Как настроить многокaнaльную модель атрибуции для своего бизнеса....

21 10 2022 19:51:20

Как линкбилдер работает с поиском Яндекс

Как линкбилдер работает с поиском Яндекс SEO-специалист Константин Гайдук поделился с читателями блога постом о фишках работы линкбилдера с поиском Яндекс....

20 10 2022 0:51:51

Как сделать интеграцию Google Tag Manager с Яндекс.Метрикой

Как сделать интеграцию Google Tag Manager с Яндекс.Метрикой Подружим GTM и Метрику с минимальным вовлечением программиста....

19 10 2022 3:45:31

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