Обработка webhooks Bpium в Oktell — различия между версиями
м |
м (→Файлы) |
||
Строка 54: | Строка 54: | ||
==Файлы== | ==Файлы== | ||
− | *[ | + | *[[Media:Bpium_webhook_scr.zip|Архив со сценариями]] |
Текущая версия на 12:29, 31 марта 2023
Содержание
Описание
В Бипиум существует возможность отправки уведомлений сторонним системам при изменении данных пользователями. Для отправки уведомлений сторонние системы должны быть подписаны на события - вебхуки(webhooks). Подробнее с настройкой вебхуков в Бипиум можно ознакомиться по ссылке: Вебхуки.
В данной статье рассматривается способ приема таких уведомлений в Oktell.
Бипиум отправляет события на указанный при создании webhook адрес при помощи POST-запроса с передачей сообщения о событии в теле запроса в формате JSON.
Принять и обработать POST-запрос с произвольным содержимым в Oktell можно при помощи служебного сценария генерации 404 ошибки. Он запускается когда на web-сервер Oktell приходит запрос на неизвестный ресурс. В качестве входных параметров в сценарий передаются: адрес ресурса, HTTP-заголовки запроса, содержимое запроса.
Таким образом получаем следующий алгоритм обработки вебхуков:
- создаем вебхук и указываем адрес для запросов в Oktell
- настраиваем служебный сценарий генерации 404 ошибки, в котором анализируем адрес, на который пришел запрос
- обрабатываем содержимое запроса и выполняем необходимые действия в Oktell
Пример
Рассмотрим простой пример:
1) В Бипиум настроен каталог Задачи. При добавлении новой задачи и назначении ответственного, ему необходимо отправить уведомление на электронную почту.
2) Каталог Задачи содержит 3 поля: Название задачи, Описание и Ответственный.
3) Настроим вебхук, укажем адрес web-сервера Oktell, на который будут отправляться уведомления - https://user:password@myoktell.ru/Bpium/NewTask.
4) Создадим служебный сценарий HTTP404. Сохраняем в переменные адрес ресурса и содержимое значение функций Входной параметр 1 и Входной параметр 4, которые содержат соответственно адрес ресурса и содержимое запроса.
5) Анализируем адрес ресурса: если переменная содержит строку “/Bpium/NewTask”, то продолжаем обработку запроса, в противном случае завершаем сценарий.
6) Обработку содержимого будем производить в отдельном служебном сценарии BpiumNewTask, который запустим асинхронно. Основной сценарий завершаем установкой кода ответа HTTP 200 в служебную переменную (сл) Возвращаемое значение 2.
7) В сценарии обработки содержимого запроса BpiumNewTask с помощью компонента Парсер разбираем полученное JSON-сообщение. Подробнее о работе с компонентом Парсер можно прочитать в статье компонент Парсер.
8) Выделяем из полученного сообщения Название задачи, Описание задачи и идентификатор ответственного. Далее при помощи компонента Bpium получаем адрес электронной почты ответственного. Формируем текст письма и отправляем ответственному сотруднику.
9) Указываем в настройках web-сервера Oktell созданный сценарий.
10) Проверяем, что при добавлении новой записи в каталог Задачи, получаем уведомление на электронную почту.