Отправить через вебхук
Вебхук используется для связи бота с любыми сторонними платформами. Благодаря ему ты можешь передать данные подписчика из своего бота в сторонний сервис, или скрипт-обработчик.
Полученный в результате ответ от обработчика может быть помещён в переменную, и использован внутри бота. Данная возможность предназначена для опытных специалистов, однако она открывает невероятно широкие возможности для твоих ботов.
Параметры вебхука
URL-адрес обработчика - название говорит само за себя :) На данный адрес будет отправлен запрос.
Отправить запрос методом - один из шести методов (GET, POST, JSON POST, PUT, PATCH, DELETE), которым будет отправлен запрос. Назначения методов мы разберем немного позже.
Сохранить результат - здесь можно выбрать переменную, в которую будет помещен результат выполнения запроса.
Заголовки запроса
Параметры запроса
Методы запроса
Сейчас будет немного технической информации, но не стоит её пугаться. Ты сталкиваешься с этим каждый день, и даже сейчас с этим работаешь :)
Сервисы и платформы общаются между собой через протокол HTTP. Это один из протоколов передачи информации в сети интернет.
Метод указывает какое конкретное действие нужно сделать с ресурсом.
Самые популярные методы:
Метод "GET" - Используется для получения информации. На эту страничку ты попал именно этим методом.
Метод "POST" - Используется для передачи информации в обработчик. Например, отправка формы с контактными данными.
Метод "JSON POST" - То же самое, что и метод POST, только передается в формате JSON.
Редко встречающиеся методы:
Встречаются редко, но стоит познакомиться с ними 😉
Методы "PATCH" и "PUT" - используются для обновления уже созданного ресурса на сервере.
Разница в том, что PATCH
содержит набор инструкций, описывающих, как ресурс, находящийся в данный момент на исходном сервере, должен быть модифицирован.
А в PUT
содержится новая версия ресурса целиком.
Метод "DELETE" - Говорит серверу о необходимости удалить данный ресурс.
Как мне выбрать, какой метод использовать?
Это зависит от того, интеграцию с чем нужно сделать. Если это онлайн-платформа, например, Bitrix24 или AmoCRM - метод, которым нужно отправлять данные будет описан в документации к ней.
Если ты хочешь отправлять запрос на свой скрипт - ответ на данный вопрос тебе даст программист твоего проекта.
А если программиста нет, и всё это слишком сложно для тебя - напиши нам в техподдержку, мы поможем реализовать твою задачу :)
Выбирай способ связи с нами 👇
💟Как задать вопрос в поддержку?Заголовки запроса
Здесь всё просто, слева - название заголовка, справа - значение, которое необходимо передать в него :)
Тело запроса
Здесь указываются параметры, которые вам необходимо передать в скрипт-обработчик.
Слева указывается название параметра, справа - его значение.
Так же можно подставлять переменные. Для этого используется такая же конструкция, как при подстановке переменной в блоке сообщения.
({ имя_переменной })
Так же вы можете использовать зарезервированные переменные.
Передача многомерных массивов
Для того, чтобы создать вложенный массив, используй точку в названии ключа там, где необходимо перейти на следующий уровень вложенности.
Это звучит слишком замудрённо, но на самом деле это просто.
Давай рассмотрим на примере.
Если ты хочешь создать массив вида
[
"user" => [
"name" => имя_подписчика,
"last_name" => фамилия_подписчика,
],
"group" [
"id" => ид_группы,
"channel_name" => название_группы
]
]
используй следующую запись в блоке "Действие":

Сохранение переменной
Если обработчик вернул не JSON объект - результат будет помещён в переменную как простой текст.
В случае, если обработчик вернул в ответ - JSON - он будет сохранён в переменную как объект.
Объект позволяет в дальнейшем обращаться к вложенным параметрам. Рассмотрим пример.
Ответ сервера:
{
promo: {
code: "ABC",
percent: 15,
}
}
Чтобы получить значение вложенного поля code, необходимо указать полный путь к нему начиная от корня.
Рассмотрим на примере.
Допустим, результат запроса сохранён в переменную "result".
Чтобы получить значение поля "code", мы используем следующую запись:
{ignore}
({result.promo.code})
- в результате выполнения этой инструкции будет выведена строка "ABC".
{/ignore}
Typecast в webhooks
Если нужно преобразовать данные при отправке данных, можно использовать typecast
(bool) - преобразует значение в логическое true/false
Пример:
(bool) true
(int) - преобразует значение в числовое
Пример:
(int) 123
Что, если не удалось выполнить вебхук?
В случае, если при выполнении запроса произошла ошибка (сервер вернул ошибку 4xx или 5xx), платформа ещё несколько раз постарается отправить запрос.
Промежутки времени, через которые вебхук будет отправлен повторно:
Первая попытка - 5 секунд
Вторая попытка - 30 секунд
Третья попытка - 1 минута
Четвертая попытка - 30 минут
Пятая попытка - 2 часа
В случае, если попытки кончились - выполнения сценария приостанавливается.

Остались вопросы?
В нашей техподдержке вы с легкостью найдёте нужные ответы. Просто выберите удобный способ связи и свяжитесь с нами ☺️👇
Last updated
Was this helpful?