Как получать данные от сторонних сервисов — создаем вебхук с помощью 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) ;}
Кроме рассмотренных выше примеров, этот подход можно применять для решения других задач, когда необходимо получить данные от внешних сервисов при наступлении определенного события.
Хотите узнать больше о решениях для бизнес-процессов? Подписывайтесь на нашу рассылку:
Истории бизнеса и полезные фишкиКомментарии:
Уроки, написанные понятным и доступным языком экспертами по контекстной рекламе, поисковому продвижению, SMM....
24 09 2023 10:11:41
3D принтер — заработок миллионеров будущего! Тех, кто сейчас смог купить и начал заниматься ими или использует их в бизнесе, ждет объемный успех через каких-нибудь 3-5 лет....
23 09 2023 22:20:14
Интересные маркетинговые методы, эффективные профессиональные хитрости и много другое прозвучало на круглом столе по фишкам контекстной рекламы...
22 09 2023 5:49:44
Как без проблем пересылать данные в Google Покупки....
21 09 2023 4:17:11
Google Penguin официально стал частью основного алгоритма поисковика. Как обезопасить свой бизнес и встретить апдейт алгоритма Google во всеоружии? О трафике, анкорах, бэклинках, ссылках и ссылочной массе, трастовости и постоянном мониторинге, с комментариями специалистов...
20 09 2023 16:58:40
XML-фид представляет собой файл с кодом на языке XML, ссылку на который используют в различных сервисах...
19 09 2023 13:10:11
Рекламные кампании для брендинга, роста вовлечения пользователей, продаж, лояльности. Какой формат выбрать, чтобы получить необходимое целевое действие. Узнать!...
18 09 2023 18:54:28
Иногда удержать пользователя сложнее, чем мотивировать загрузить приложение. Семь инструментов для анализа Uninstall Rate....
17 09 2023 18:23:19
Повышение посещаемости на сайте: контент, seo, ppc и многое другое...
16 09 2023 12:32:42
Твиттереть нужно правильно. Интересная аналитики и планирование твитов по времени...
15 09 2023 0:27:30
Как прокачать email, когда рассылки уже работают....
14 09 2023 15:26:51
Шесть новых услуг. Читайте подробнее о возможностях PBN, Big Data SEO, продвижения в Телеграм и мобильных приложений, исследований рынка, SMM для вашего бизнеса. А также хорошая новость и ещё одна услуга для тех, кому нжно комплексное мобильное продвижение...
13 09 2023 9:35:15
Получаем реальную статистику эффективности использования AMP-страниц с помощью АМР Client ID API....
12 09 2023 13:54:26
Доминирование маркетплейсов и агрегаторов в Яндексе усилилось. Первый магазин появляется не раньше 5 позиции. Поэтому компания Alto подготовила пошаговое руководство - как обойти агрегаторы в выдаче....
11 09 2023 0:59:52
Сортировка мусора, использование велосипедов вместо автомобилей, озеленение города... В Украине, как правило, так представляют экофрендли бизнес. Зарубежные компании идут дальше....
10 09 2023 17:50:15
Сооснователь SUPERLUDI Влад Ноздрачев рассказал в своем подкасте о развитии инфобизнеса. Предлагаем вам вольный пересказ....
09 09 2023 11:23:14
29 ноября в Киеве в UNIT.City — конференция по медицинскому маркетингу MeDiConf...
08 09 2023 17:31:13
Рецензия на книгу «Нейромаркетинг в действии» Дэвида Льюиса...
07 09 2023 10:29:49
Работа — рекламировать. Интервью с директором по стратегии агентства Smartica/Skykillers....
06 09 2023 8:56:23
кейсы по seo интернет-магазина модной одежды в Болгарии: как мы сняли негативный эффект от Google Penguin и получили ROMI (возврат маркетинговых инвестиций) 1428%...
05 09 2023 13:54:39
Как добавить свою рекламу через поисковый сервис с картинками в Google....
04 09 2023 18:22:40
Заказчик всегда приходит с идеей. В этой идее может быть все продумано до мелочей, а может быть только каркас. В любом случае мысли клиента следует систематизировать так, чтобы с ними было удобно работать....
03 09 2023 0:12:10
Что нужно делать на старте работ с интернет-магазином и как минимизировать риски для бизнеса онлайн, используя такие инструмента как SEO, PPC и Email-маркетинг — советы от эксперта. Читать дальше!...
02 09 2023 4:27:48
Опыт, накопленный за более чем 10 лет работы в нише и упакованный в специальные предложения....
01 09 2023 12:59:56
Контент может информировать, вовлекать и продавать, при этом для каждой цели нужен свой тип контента...
31 08 2023 23:48:34
Как и где найти хорошего автора для вашего сайта: сравнение платформ копирайтинга, форматы оплаты (объем или качество), фишки по выбору фрилансера. Читать дальше!...
30 08 2023 5:34:12
Как отслеживать эффективность мобильного приложения в онлайн-режиме....
29 08 2023 13:37:18
Хотите раскрутить свои соцсети в 2022 году? Тогда уже сейчас нужно задуматься, что будете публиковать. В статье расскажем, какой контент будет в тренде в будущем году....
28 08 2023 16:37:56
Каковы интересы вашей аудитории, как люди находят ваш контент. Рассказываем обо всех возможностях от Search Console Insights....
27 08 2023 7:44:21
Чем вам может пригодиться это исследование? Понимания стоимость конверсии и необходимое количество конверсий, вы можете прогнозировать, сколько денег на рекламу нужно выделить. Читать!...
26 08 2023 14:58:57
Лайфхаки, как упростить работу с соцсетями от специалиста агентства Netpeak и ежедневной работы SMM-специалиста. Телеграм-боты, которые облегчат рутину и сэкономят время. Узнать больше!...
25 08 2023 21:44:59
Кейс SMM-специалиста Edu-CASH.com о том, что делать, если Facebook страница заблокирована. И почему могут забанить аккаунт даже популярного бренда. Узнайте в статье!...
24 08 2023 11:13:37
Лучшая работа по перехвату инициативы у конкурентов в аналитике продаж...
23 08 2023 22:55:20
На вопрос «как все успеть?» хочется ответить что-то вроде «никак». Особенно, если дело касается задач, связанных с творчеством. Но можно и не срывать дедлайны. Читать дальше....
22 08 2023 3:16:43
Дизайнер, в частности технический дизайнер баннеров, — человек, который оформляет конкретную идею, текст и логотип в приемлемую визуальную форму. Все делают это по-разному, но конечный результат всегда зависит от четкости поставленной задачи...
21 08 2023 9:34:28
Как операторы поисковых запросов Google помогают при продвижении сайта и анализе конкурентов....
20 08 2023 11:10:21
Инструкция для трудоголиков для тех, кто старается выполнить как можно больше заданий, а заметного прогресса при этом нет. Работать много и эффективно не всегда полезно. Если бы эффективная работа была залогом успеха, каждому хомяку воздвигли бы памятник...
19 08 2023 20:34:57
Все дело в формате объявлений Instant Experience с подключенным каталогом товаров. Нет, не только в нем. Узнать больше!...
18 08 2023 13:47:48
Алгоритм E-A-T теперь следит за экспертностью, авторитетностью и достоверностью контента. Что это значит?...
17 08 2023 22:25:58
Бесплатно, быстро и безопасно. Но есть и минусы. Узнать больше!...
16 08 2023 4:24:21
Как настроить многокaнaльную модель атрибуции для своего бизнеса....
15 08 2023 1:12:35
Структура того, чем обладают сотрудники департаментов работы с клиентами лучших компаний....
14 08 2023 2:56:22
Обычно SaaS-бизнесы начинают привлечение лидов с запуска рекламы на Facebook. Но наш опыт говорит о том, что это не самые подходящие каналы. Более высокие результаты можно получить на LinkedIn....
13 08 2023 9:35:17
Как диагностировать Google Panda, понять, что нужно изменить на своем сайте и сделать пользователей счастливыми....
12 08 2023 15:40:30
Если выполнить настройку не корректно, поисковик воспримет материалы как дубли контента....
11 08 2023 13:14:40
Что бывает, когда работа над продвижением сайта начинается до его выхода в паблик....
10 08 2023 8:37:47
Перед внедрением ремаркетинга следует хорошенько поработать над составлением базовых портретов аудитории сайта...
09 08 2023 11:15:23
Детально заполняйте карточку товара, добавляйте качественные фотографии, делайте акцент на УТП....
08 08 2023 19:10:21
Слорварь сленга, без которого к 25-летним не подходи...
07 08 2023 14:43:42
Украинцы хотят заниматься коммерцией. И иногда делают это очень нестандартно. Собрали для вас подборку бизнесменов с особенным мышлением....
06 08 2023 23:39:14
Еще:
понять и запомнить -1 :: понять и запомнить -2 :: понять и запомнить -3 :: понять и запомнить -4 :: понять и запомнить -5 :: понять и запомнить -6 :: понять и запомнить -7 ::