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