Что такое вебхук и как его использовать

106 318
Оглавление

Используемые продукты и сервисы

Вебхук — это удобный и быстрый способ оповестить клиента об изменении на сайте. Например, если появился новый комментарий, изменилась цена или пришла заявка на товар. Механизм вебхуков работает за счет коллбэка — функции обратных вызовов. Клиент настраивает URL-адрес, на который при изменении данных отправляется HTTP-запрос. Рассказываем, как работает webhook, как его создать и какие есть ограничения. 

Что такое webhook

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

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

Алгоритм в этом случае выглядит так:

  1. Посетитель оставляет заявку на сайте.

  2. Информация об этом попадает в базу данных на сервер.

  3. Запускается код вебхука.

  4. Администратору интернет-магазина приходит сообщение о новой заявке.

Так он может оперативно отреагировать на запрос покупателя.

А чтобы оценить эффективность рекламного канала, который привел клиента на сайт, используйте инструмент Сквозная аналитика MANGO OFFICE. Система анализирует весь путь клиента, считает стоимость его привлечения, оценивает КПД отдельных кампаний и площадок и выдает эту информацию в виде понятного детального отчета.

Подробнее о сквозной аналитике

В чем разница между API и вебхуками

Данные об изменениях в системе получают и с помощью API, но в этом случае нужно многократно запрашивать информацию на сервере. Вебхук же настраивают однократно. Когда наступает целевое действие, он отправляет данные через протокол HTTP.

Вебхук подходит, когда нужно оперативно получать важные обновления. Например, об изменении цены или телефона, статуса заявки и т. п. Если требуется полноценно работать с базами данных, выбирают API. С его помощью просматривают информацию, создают, изменяют или удаляют ее.

Принцип работы

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

Ограничения при работе

Главные ограничения этого механизма — права доступа и способ взаимодействия. Часто вебхуки настраивают только администраторы, а отправка происходит по JSON API. Именно поэтому будьте внимательны при выборе площадки. Иногда в алгоритме вебхука возникают ошибки и он работает некорректно. Если выбранный вами сервис не предполагает создание резервных копий, есть риск потерять данные.

Иногда проблема возникает не на стороне поставщика услуг, а у клиента. Например, информация отправляется слишком часто и клиентское приложение не выдерживает нагрузки. Подобное случается при DDoS-атаках. 

Объем отправленной информации тоже имеет значение. Вебхук способен передавать массивы данных, но с по-настоящему большими объемами лучше справляется API.


Безопасность использования

Вебхуки используют публичные URL, поэтому есть риск их перехвата. Это основная брешь в безопасности механизма: получить доступ к данным и отправить клиенту измененную информацию может кто угодно. Такая проблема не возникнет, если:

  • использовать протокол HTTPS с поддержкой шифрования;

  • создавать индивидуальные URL-адреса;

  • внедрить технологию Basic Auth, которая проверяет имя пользователя и пароль;

  • подписывать запросы, а потом проверять их подлинность.

Работа с уникальными URL-адресами и технологией Basic Auth дает хорошие результаты. Однако этого недостаточно. Аутентификация с помощью токенов проще, но для повышения безопасности лучше использовать проверку подписи, как поступают, например, в GitHub и Facebook.

Как создать

Чтобы увидеть действие вебхука, необязательно создавать сайт или приложение. Воспользуйтесь ресурсом webhook.site. Сначала сервис генерирует ссылку с уникальным идентификатором. Скопируйте и вставьте ее в форму вебхука, которая обычно находится в разделе настроек на сайте. Например, в GitHub эта форма располагается по пути Settings/Webhooks.

В качестве способа взаимодействия выберите application/json. Настройте уведомления, которые требуется получать, а затем сохраните вебхук. GitHub, например, после активации сразу отправляет запрос, который можно посмотреть на webhook.site. Слева появится уведомление, а справа будет располагаться информация о запросе.

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

С вебхуками работают различные компании. Приложения на основе Twilio, а также онлайн-конструктор автоматизаций Zapier используют механизм для отслеживания реакций на звонки и сообщения. 

Среди крупных пользователей webhook:

  1. GitHub. Сервис для хостинга и совместной разработки проектов использует вебхуки, чтобы сообщать пользователям об обновлениях или других событиях.

  2. Мой склад. Система для торгового и складского учета через вебхуки информирует клиентов об изменении цены или статуса их заказов.

  3. Callibri. Сервис по оценке эффективности рекламы с помощью вебхуков оповещает пользователей о новых письмах, заявках, сообщениях.

Настраивать вебхуки и добавлять ссылки для HTTP-запросов на этих площадках максимально удобно за счет простого интерфейса.

Как проверить, что вебхук работает

Для проверки работоспособности вебхука воспользуйтесь сервисом webhook.site. Скопируйте ссылку и вставьте ее в клиентскую программу. Затем настройте уведомления, после чего сервис отправит тестовый запрос. Если этого не произошло автоматически, создайте событие вручную.

Что важно запомнить

  • С помощью вебхука система оповещает клиента о произошедшем событии.

  • Вебхук — это альтернатива API, но более упрощенная. В отличие от АПИ, ему не нужно отправлять запрос, чтобы получить ответ.

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

  • У вебхуков есть слабые места — соблюдайте правила безопасности при их использовании. 

Используемые продукты и сервисы