Что такое вебхук?

Вебхук — это ссылка, которая запускает действие.

Представим, что есть волшебный сервис FreePizza, который привезёт бесплатную пиццу любому желающему по запросу.

Так мог бы выглядеть вебхук, который создаёт заказ на пиццу:

https://free-pizza.com/send-me-pizza

Как сделать вебхук?

В каждом сервисе процесс будет немного отличаться, но общий принцип такой:

  1. Заходим в сервис 1 который будет выполнять действие по вебхуку.
  2. Создаём вебхук в своём личном кабинете, получаем ссылку.
  3. Заходим в сервис 2 который будет вызывать вебхук.
  4. Регистрируем в нём ссылку вебхука.

После этого второй сервис будет сам вызывать вебхук из первого сервиса, а первый сервис как-то реагировать на это.

Как самому вызвать вебхук?

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

Выполнив HTTP-запрос по ссылке вебхука, мы запускаем действие.

Для вебхуков используются GET и POST запросы.

Простые GET запросы можно выполнить, просто открыв ссылку в браузере. Также GET запрос может быть вызван случайно, например если вы отправили ссылку в мессенджере, а мессенджер решил заглянуть по ссылке чтобы вывести в диалоге заголовок страницы. Поэтому рекомендуется использовать POST запросы для вебхуков. Случайно их не запустишь.

POST запрос можно выполнить разными способами. Я делаю это в консоли с помощью утилиты HTTPie:

http POST https://free-pizza.com/send-me-pizza topping=pepperoni

Мы можем передать дополнительную информацию вместе с запросом. Я указал, что мне нужна пицца пеперони. Можно добавить размер пиццы, адрес доставки или приватный токен, который для меня создали в сервисе FreePizza.

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

Примеры использования вебхуков

Предназначение вебхука — связать две системы через автоматическое действие.

Пример 1. Запускаем действие

Вызвав вебхук на сервисе FreePizza мы запускаем действие “заказать бесплатную пиццу”. То есть здесь вебхук используется для того, чтобы запустить некий процесс, действие.

Для сервиса FreePizza это будет входящий вебхук — тот, который сервис “получает”.

Заказ бесплатной пиццы через вебхук

Пример 2. Получаем информацию о событии

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

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

Зарегистрировавшись в сервисе уведомлений, мы создаём вебхук для отправки уведомления. После этого регистрируем его на своём сайте, привязав к событию “получена новая заявка”.

Для нашего сайта это будет исходящий вебхук — тот, который сервис “отправляет”.

Уведомление о заявке через вебхук

Вебхук — это API?

Постойте. HTTP запросы, автоматизация, разве это не то же самое что API?

По сути, так оно и есть. Вебхук это простейшее API.

Но есть и отличия.

Отличия вебхука от API

Возможности вебхуков

Вебхук это та самая “верёвка”, которой мы связываем сервисы между собой.

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

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

Пример сложной связки

Сложная интеграция с помощью вебхуков

Кто использует вебхуки

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

Для того чтобы уметь ими пользоваться в полной мере, достаточно общего представления о том, как устроен интернет, а также базовых знаний протокола HTTP. Изучение этих тем “с нуля” занимает от одного до нескольких дней. Сравните с полноценным обучением программированию )

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

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

Использовать вебхуки может:

  1. Программист
  2. Но-кодер
  3. Специалист по интеграции и настройке систем
  4. Специалист техподдержки
  5. Владелец бизнеса
  6. Любой человек которому нужна автоматизация для каких-то личных нужд