Отправить через вебхук
Вебхук используется для связи бота с любыми сторонними платформами. Благодаря ему ты можешь передать данные подписчика из своего бота в сторонний сервис, или скрипт-обработчик.
Полученный в результате ответ от обработчика может быть помещён в переменную, и использован внутри бота. Данная возможность предназначена для опытных специалистов, однако она открывает невероятно широкие возможности для твоих ботов.
Параметры вебхука
URL-адрес обработчика - название говорит само за себя :) На данный адрес будет отправлен запрос.
Отправить запрос методом - один из шести методов (GET, POST, JSON POST, PUT, PATCH, DELETE), которым будет отправлен запрос. Назначения методов мы разберем немного позже.
Сохранить результат - здесь можно выбрать переменную, в которую будет помещен результат выполнения запроса.
Заголовки запроса
Параметры запроса
Методы запроса
Сейчас будет немного технической информации, но не стоит её пугаться. Ты сталкиваешься с этим каждый день, и даже сейчас с этим работаешь :)
Сервисы и платформы общаются между собой через протокол HTTP. Это один из протоколов передачи информации в сети интернет.
Метод указывает какое конкретное действие нужно сделать с ресурсом.
Самые популярные методы:
Метод "GET" - Используется для получения информации. На эту страничку ты попал именно этим методом.
Метод "POST" - Используется для передачи информации в обработчик. Например, отправка формы с контактными данными.
Метод "JSON POST" - То же самое, что и метод POST, только передается в формате JSON.
Редко встречающиеся методы:
Методы "PATCH" и "PUT" - используются для обновления уже созданного ресурса на сервере.
Разница в том, что PATCH
содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на исходном сервере, должен быть модифицирован.
А в PUT
содержится новая версия ресурса целиком.
Метод "DELETE" - Говорит серверу о необходимости удалить данный ресурс.
Как мне выбрать, какой метод использовать?
Это зависит от того, интеграцию с чем нужно сделать. Если это онлайн-платформа, например, Bitrix24 или AmoCRM - метод, которым нужно отправлять данные будет описан в документации к ней.
Если ты хочешь отправлять запрос на свой скрипт - ответ на данный вопрос тебе даст программист твоего проекта.
А если программиста нет, и всё это слишком сложно для тебя - напиши нам в техподдержку, мы поможем реализовать твою задачу :)
Заголовки запроса
Здесь всё просто, слева - название заголовка, справа - значение, которое необходимо передать в него :)
Тело запроса
Здесь указываются параметры, которые вам необходимо передать в скрипт-обработчик.
Слева указывается название параметра, справа - его значение.
Так же можно подставлять переменные. Для этого используется такая же конструкция, как при подстановке переменной в блоке сообщения.
({ имя_переменной })
Так же вы можете использовать зарезервированные переменные.
Передача многомерных массивов
Для того, чтобы создать вложенный массив, используй точку в названии ключа там, где необходимо перейти на следующий уровень вложенности.
Это звучит слишком замудрённо, но на самом деле это просто.
Давай рассмотрим на примере.
Если ты хочешь создать массив вида
используй следующую запись в блоке "Действие":
Сохранение переменной
Если обработчик вернул не JSON объект - результат будет помещён в переменную как простой текст.
В случае, если обработчик вернул в ответ - JSON - он будет сохранён в переменную как объект.
Объект позволяет в дальнейшем обращаться к вложенным параметрам. Рассмотрим пример.
Ответ сервера:
Чтобы получить значение вложенного поля code, необходимо указать полный путь к нему начиная от корня.
Рассмотрим на примере.
Допустим, результат запроса сохранён в переменную "result".
Чтобы получить значение поля "code", мы используем следующую запись:
{ignore}
({result.promo.code})
- в результате выполнения этой инструкции будет выведена строка "ABC".
{/ignore}
Typecast в webhooks
Если нужно преобразовать данные при отправке данных, можно использовать typecast
(bool) - преобразует значение в логическое true/false
Пример:
(int) - преобразует значение в числовое
Пример:
Что, если не удалось выполнить вебхук?
В случае, если при выполнении запроса произошла ошибка (сервер вернул ошибку 4xx или 5xx), платформа ещё несколько раз постарается отправить запрос.
Промежутки времени, через которые вебхук будет отправлен повторно:
Первая попытка - 5 секунд
Вторая попытка - 30 секунд
Третья попытка - 1 минута
Четвертая попытка - 30 минут
Пятая попытка - 2 часа
В случае, если попытки кончились - выполнения сценария приостанавливается.
Остались вопросы?
Last updated