Руководство по Webhooks на простом английском языке
Сторонние веб-приложения становятся все более распространенными среди предприятий любого размера. Они предоставляют специализированные инструменты и инфраструктуру для экономии времени и ресурсов, от обработки денежных транзакций до автоматизации электронной почты и многого другого.
Все эти взаимодействующие приложения нуждаются в способах эффективного взаимодействия, которые упрощают процедуры и соответствуют вашим потребностям. Рассмотрим следующий пример.
У вас есть интернет-магазин футболок. Продажи набирают обороты, поэтому вы решаете использовать стороннее платежное приложение PayNow для обработки всех транзакций на вашем сайте. Чтобы улучшить качество обслуживания клиентов, вы также хотите, чтобы ваш магазин отправлял клиентам электронные письма с подтверждением сразу после совершения покупок с помощью службы PayNow.
Но как PayNow, отдельное приложение от вашего магазина, может сообщить вам, что кто-то только что купил футболку?
Одно из решений – сделать так, чтобы приложение вашего магазина регулярно запрашивало данные из PayNow, скажем, раз в минуту. Затем ваше приложение может отправлять клиентам электронную почту с соответствующей информацией о покупке. Однако это много запросов и потенциально может вызвать проблемы с доставкой электронной почты. Лучшим вариантом будет использование веб-перехватчика.
В этом посте мы расскажем, что такое веб-перехватчик, чем он отличается от интерфейса прикладного программирования (API) и как он работает. Давайте начнем с определения, что такое веб-перехватчик.
Что такое веб-перехватчик?
Веб-перехватчик – это метод, используемый веб-приложениями для автоматического взаимодействия друг с другом в режиме реального времени. Когда в веб-приложении происходит событие, например нажатие кнопки, веб-перехватчик отправляет сообщение, в котором запрашивается действие в другом веб-приложении. В этом случае приложение, отправляющее сообщение, называется поставщиком веб-перехватчика, а отвечающее приложение – получателем веб-перехватчика.
Термин «веб-перехватчик» объединяет веб, как в случае с веб-сайтом или веб-приложением, и перехватчик, термин программирования, означающий функцию, которая запускается при возникновении другого события. Теперь, когда мы знаем, что такое веб-перехватчик, давайте еще раз посмотрим на наш пример с футболкой.
Чтобы ваш магазин мог взаимодействовать с PayNow, вы должны настроить между ними веб-перехватчик, при этом особым событием является то, что покупатель нажимает кнопку «Разместить заказ» на веб-сайте PayNow. После этого события PayNow отправит вашему приложению магазина футболок сообщение, содержащее запрошенные данные, включая проданные продукты, уплаченную сумму и адрес электронной почты покупателя. Затем ваше приложение мгновенно отправит подтверждение на адрес электронной почты, полученный при доставке через веб-перехватчик.
Приложение вашего магазина может делать с этой информацией много других полезных вещей, например вводить информацию в базу данных, изменять страницу или элемент на веб-сайте вашего магазина (например, «страницу популярных товаров») или отправлять вам уведомление о продаже через другое приложение, например Слабость.
Возможно, вы слышали о приложениях, взаимодействующих с помощью аналогичного метода, известного как запрос API. Давайте посмотрим на разницу между этими двумя методами ниже.
Веб-перехватчики против API
Основное различие между запросами API и веб-перехватчиками заключается в том, что запросы API должны вручную запрашивать информацию у своего провайдера, тогда как веб-перехватчики запускаются автоматически от провайдера веб-перехватчиков. В этом заключается магия веб-перехватчиков: вашему приложению никогда не нужно проверять наличие событий в сторонних приложениях.
Вы можете думать об этом по-другому. Вы знаете, как ваш телефон автоматически уведомляет вас, когда вы получаете новое текстовое сообщение? Так работают веб-перехватчики. Однако если бы эти уведомления были отключены, вам пришлось бы проверять наличие текстов самостоятельно каждые несколько часов (или как бы часто вы ни решили). Так работают запросы API.
Короче говоря, всякий раз, когда вы хотите, чтобы событие в стороннем приложении автоматически запускало событие в вашем приложении, используйте веб-перехватчики.
Ведущие программные продукты предлагают веб-перехватчики для самых разных целей. FourSquare включает веб-перехватчики для уведомления вашего приложения, когда кто-то прибывает в определенное место. В Dropbox есть веб-перехватчики для уведомления пользователей об изменении файлов в их папках. А Hubspot использует веб-перехватчики различными способами, включая уведомление пользователей о важных событиях.
Теперь, когда мы понимаем разницу между веб-перехватчиками и API-интерфейсами, давайте более подробно рассмотрим, как работают веб-перехватчики.
Как работают веб-перехватчики?
После того, как в приложении поставщика веб-перехватчика происходит событие, веб-перехватчик отправляет HTTP-запрос от поставщика к получателю веб-перехватчика.
HTTP-запрос – это, по сути, поставщик, запрашивающий передачу информации в приложение-получатель с использованием определенного формата данных, называемого JSON, который принимается и интерпретируется получателем. Платформа вашего приложения-получателя должна уметь обрабатывать эти запросы и превращать их в полезную информацию. Затем получатель отправляет второй HTTP-запрос обратно поставщику, сообщая ему, что его запрос был успешным.
Вот рисунок Twilio, который показывает процесс от начала до конца. В этом примере Twilio использует веб-перехватчики, чтобы ваше приложение узнало, когда пользователь отправляет SMS-сообщение на ваш номер телефона Twilio.
Как использовать Webhooks
После выбора веб-перехватчика для настройки со сторонней службой, такой как PayNow, вам необходимо предоставить этой службе специальный URL-адрес на своем веб-сайте, по которому они могут отправлять HTTP-запросы. Этот URL-адрес по сути похож на номер телефона или адрес вашего приложения. У вашего провайдера веб-перехватчиков может быть открытый API, который поможет вам создавать перехватчики с их сервисом, или он может упростить этот процесс для вас.
После создания веб-перехватчика вы можете выбрать, какие действия будет выполнять ваше приложение, когда провайдер веб-перехватчика отправляет вам HTTP-запросы.
Скажем, например, вы хотите использовать веб-перехватчики для извлечения всех данных контакта в приложение магазина футболок всякий раз, когда они заполняют форму HubSpot на вашем сайте. Вы настроили веб-перехватчик в своем рабочем процессе HubSpot, чтобы каждый раз, когда контакт заполнял форму, HubSpot отправлял всю запись этого контакта в формате JSON на URL-адрес веб-перехватчика. Это выглядело бы примерно так:
Тогда ваше приложение, т.е. приемник веб-перехватчика будет анализировать данные и использовать их для своего собственного приложения.
Поскольку веб-перехватчики отправляют HTTP-запросы на общедоступный URL-адрес в вашем приложении, важно убедиться, что входящие запросы безопасны. Существует множество опций для аутентификации запросов веб-перехватчиков, включая базовую аутентификацию доступа HTTP, подпись или токен, отправленные с запросом, или добавление небезопасных доменов в белый список вручную.
У вашего поставщика веб-перехватчиков, вероятно, есть документация, в которой подробно описан протокол аутентификации для HTTP-запросов. Посмотрите, например , документацию HubSpot.
Использование веб-перехватчиков на вашем сайте
Если вы используете сторонние сервисы со своими веб-приложениями, веб-перехватчики являются ценным инструментом для повышения эффективности вашего приложения и уменьшения вероятности ошибок. Понимание веб-перехватчиков и их включение в ваш бэкэнд может помочь улучшить ваши процессы, услуги и, возможно, ваши продажи футболок!
Источник записи: https://blog.hubspot.com