Как получать данные от сторонних сервисов — создаем вебхук с помощью Google Apps Scripts
При внедрении бизнес-процессов важно получать данные от внешних сервисов при наступлении того или иного события — это может быть передача данных из CRM-систем, сервисов оплаты, систем аналитики, интернет-магазинов. В большинстве таких случаев вам нужен вебхук.
Вебхук (webhook) — механизм получения уведомлений о происходящих в системе событиях с помощью функций обратных вызовов. Когда случается интересующее клиента событие, сервер отправляет HTTP-запрос на URL-адрес, предоставленный клиентом для приема вебхуков.Если вам нужно оперативно обработать полученные через вебхук данные, можно воспользоваться настройкой вебхука в Google Apps Scripts.
Вначале необходимо создать новый проект. Сделать это можно несколькими способами:
- Перейти в панель создания скриптов и кликнуть «Создать проект».
- Создать пустую таблицу 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-канала — инструкция для администраторов Этот способ удобен тем, что будет уведомлять вас о совершенной конверсии или наступлении другого события в режиме реального времени с помощью
Чтобы создать своего бота, просто напишите пользователю @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) ;}
Кроме рассмотренных выше примеров, этот подход можно применять для решения других задач, когда необходимо получить данные от внешних сервисов при наступлении определенного события.
Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:
Истории бизнеса и полезные фишкиКомментарии:
Формула изменения поведения Фогга и два красочных примера инсайде....
26 04 2024 9:24:59
На этой картинке изображены два предмета. Один из них называется «буба», а второй «кики»....
25 04 2024 3:27:15
Таблица общих для Google и Яндекс микроформатов инсайде...
24 04 2024 5:51:18
Грамотная группировка поисковых запросов позволяет максимально увеличить поисковой трафик....
23 04 2024 5:41:33
Какие форматы видеорекламы логичнее купить для создания спроса на новую продукцию? Выясняем на примере кейса бренда Yves Rocher...
22 04 2024 0:29:28
Активно юзая Google Tag Manager, узнали много нового о dataLayer и методах отслеживания статистики в Google ***ytics для SPA-сайтов и лендингов. Об этом и расскажем...
21 04 2024 0:52:39
Что поможет написать объявление без грамматических ошибок? В недрах агентства Netpeak рождается новый полезный сервис...
20 04 2024 22:30:52
Программа покорения онлайн мира мобайла — самому и с ограниченными средствами на маркетинг...
19 04 2024 6:48:28
Отрывок из книги «Статистика: базовый курс в комиксах» Грейди Клейн и Алана Дебни...
18 04 2024 0:33:49
Самопомощь по тревоге во время карантина и экономического кризиса...
17 04 2024 19:18:34
Правила, требования, особенности. А ещё примеры, которые помогут создать правильную, с точки зрения поисковиков, рекламу. Читать!...
16 04 2024 19:32:29
Как автоматизировать выгрузку данных онлайн из Яндекс.Метрики и импортировать полученную статистику для дальнейшего анализа или визуализации....
15 04 2024 3:12:24
Зачем нужны пользовательские сегменты клиентов и как их создавать — читайте в завершающей части серии «Как анализировать эффективность рекламы в Google ***ytics?»...
14 04 2024 22:51:24
Готовы ли вы доверить основные настройки кампании автоматическим алгоритмам?...
13 04 2024 17:53:12
С помощью этой шпаргалки вы легко распределите акценты и начнете последовательно внедрять маркетинговую стратегию по продвижению мобильного приложения...
12 04 2024 2:57:48
Мы уже писали о Google Shopping, в каких странах он доступен и как его настроить. В этом посте я покажу один из способов создания и загрузки фида данных. Это важный этап подготовки к запуску Google Shopping...
11 04 2024 19:39:17
Когда саппорт-отдел не справляется, подключайте к работе ПланФикс и Телеграм....
10 04 2024 2:40:33
Реклама в ASA значительно повышает эффективность ASO....
09 04 2024 22:45:25
Новости для наших существующих и потенциальных клиентов....
08 04 2024 23:50:46
Как создать портрет покупателя и зачем он нужен бизнесу....
07 04 2024 23:11:18
Как отслеживать конверсии при многокaнaльном взаимодействии покупателя с вашим сайтом? Читайте далее...
06 04 2024 0:21:55
Chrome Extensions экономят время тех, кто продвигает мобильные приложения...
05 04 2024 16:45:53
Портал-каталог организаций и его продвижение. В этом кейсе мы детальнее остановимся на выгодах для проекта от синергии усилий клиента и агентских специалистов по контекстной рекламе...
04 04 2024 15:52:57
Требования к интернет-магазину, мануал по регистрации, что может пойти не так...
03 04 2024 22:55:26
Распространенные ошибки в XML-фидах Google и Яндекс, CSV-фидах и как исправить их своими силами. Используем Notepad++, отладчик ленты Facebook и Excel. Узнать больше!...
02 04 2024 10:32:58
Структура обзора, правила написания и важные хаpaктеристики этого формата. Подача информации в обзоре и запрещенные методы, которые отпугнут клиентов. Узнать больше!...
01 04 2024 9:17:10
Пора сделать так, чтобы мобильная версия сайта приносила прибыль....
31 03 2024 1:53:54
Какие типы звонков отслеживаются? Есть ли интеграция с Google ***ytics? Существуют ли в выбранном сервисе или на платформе инструменты интеграции с другими системами? Больше вопросов и ответов на них — в статье....
30 03 2024 2:19:13
5 важных навыков для новичков в PPC: как учиться, чтобы стать экспертом; секреты тайм-менеджмента, мотивации; тонкости оптимизации рабочего процесса. Узнать больше!...
29 03 2024 0:15:20
Рассказываем о том, что такое Песочница, как сюда писать и получать больше аудитории для своего бизнеса...
28 03 2024 14:20:22
Как перенести рекламные кампании из адвордс в директ, используя только Google Editor и Директ Коммaндер? Делимся быстрым и эффективным методом...
27 03 2024 4:23:38
Спикер ОА Петр Аброськин рассказал всем читателям блога о фишках настройки ремаркетинга в контекстной рекламе и социальных сетях...
26 03 2024 21:44:49
И эксперт, и агент. Анонимный покупатель — специальная проверка бизнес-процессов до и во время рекламной кампании...
25 03 2024 9:17:23
История от первого лица про звуковые сигналы в Facebook....
24 03 2024 4:10:21
Профессиональный уровень SEO-специалиста в штатных комaндах редко определяется конкретной категорией (Junior, Midle, Senior). Но большинство считает себя мидлами. Узнать больше!...
23 03 2024 10:18:53
Как эффективно распределять бюджет и ресурсы на обучение сотрудников. Статья будет полезной для собственников бизнеса и HR-специалистов....
22 03 2024 0:49:26
Джефф Безос, Стив Джобс, Билл Гeйтс, Джимм Керри и другие. Собрали для вас подборку крутых выступлений людей, которые знают, как добиться ... в общем-то, всего. Читайте их основные тезисы, а главное — послушайте....
21 03 2024 6:10:37
Какие типы кампаний и ключевых слов стоит первыми запускать в Google Рекламе? Советы новичкам...
20 03 2024 19:30:30
Забавные и полезные штуки от Google и как их найти...
19 03 2024 9:13:54
Подробное руководство по настройке отслеживания событий в GA4...
18 03 2024 16:48:46
Фотоконкурс для стимуляции активности в сообществе, прироста фанов и поощрения лояльной аудитории....
17 03 2024 17:44:48
Для эффективной оценки работы кампаний не обойтись без вычисляемых показателей. Они экономят время PPC-специалиста и позволяют правильно анализировать рекламные кампании....
16 03 2024 22:59:19
Как раскрутить виртуальный магазин женской одежды. Подробно рассказываем, что делали и чего достигли...
15 03 2024 10:39:26
Satel является одним из топовых игроков онлайн-маркета, но на старте интернет в качестве канала продаж не рассматривался. Когда онлайн запустили на полную? Узнать!...
14 03 2024 17:35:17
Мир гаджетов на Android и IOS. ROMI (возврат маркетинговых инвестиций) по валовой прибыли: 764%....
13 03 2024 0:46:24
Отключение и удаление элементов, расширенные настройки, интересные дополнения и многое другое в нашем материале про мир SEO расширений....
12 03 2024 11:51:31
Наталья Воскобойникова из контент-студии WordFactory решила дать четкую хаpaктеристику потенциальному заказчику гостевых постов. Если хотя бы один ваш ответ на вопросы в этом посте отрицательный, стоит найти другие тактики продвижения своего проекта....
11 03 2024 2:37:51
Отличный способ мотивации, который мы попробовали и вам рекомендуем....
10 03 2024 9:39:20
Правила преобразования фидов в Google Merchant Center помогут сегментировать товары и сделать вашу рекламу более эффективной...
09 03 2024 23:15:44
Главная цель инфлюенс-маркетинга — теплый и близкий контакт с аудиторией. Клиентам нравится ассоциировать продукты с живыми, знакомыми им людьми — пускай и только по интернету. Читать дальше....
08 03 2024 2:27:28
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::