Обработка webhooks Bpium в Oktell — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
м (Файлы)
 
(не показано 8 промежуточных версии этого же участника)
Строка 3: Строка 3:
 
__TOC__
 
__TOC__
  
== Введение ==
+
== Описание ==
В Бипиум существует возможность отправки уведомлений сторонним системам при изменении данных пользователями. Для отправки уведомлений сторонние системы должны быть подписаны на события - вебхуки(webhooks). Подробнее с настройкой вебхуков в Бипиум можно ознакомиться по ссылке: http://docs.bpium.ru/webhooks.html.
+
В Бипиум существует возможность отправки уведомлений сторонним системам при изменении данных пользователями. Для отправки уведомлений сторонние системы должны быть подписаны на события - вебхуки(webhooks). Подробнее с настройкой вебхуков в Бипиум можно ознакомиться по ссылке: [https://docs.bpium.ru/manual/structure/systemcatalogs/webhooks Вебхуки].
  
 
В данной статье рассматривается способ приема таких уведомлений в Oktell.
 
В данной статье рассматривается способ приема таких уведомлений в Oktell.
Строка 19: Строка 19:
 
== Пример ==
 
== Пример ==
 
Рассмотрим простой пример:  
 
Рассмотрим простой пример:  
 +
 
1) В Бипиум настроен каталог '''Задачи'''. При добавлении новой задачи и назначении ответственного, ему необходимо отправить уведомление на электронную почту.
 
1) В Бипиум настроен каталог '''Задачи'''. При добавлении новой задачи и назначении ответственного, ему необходимо отправить уведомление на электронную почту.
  
Каталог '''Задачи''' содержит 3 поля: Название задачи, Описание и Ответственный.
+
2) Каталог '''Задачи''' содержит 3 поля: Название задачи, Описание и Ответственный.
  
 
[[Файл:Bpium_tasks_structure.png|center|800px]]
 
[[Файл:Bpium_tasks_structure.png|center|800px]]
  
Настроим вебхук, укажем адрес web-сервера Oktell, на который будут отправляться уведомления - https://user:password@myoktell.ru/Bpium/NewTask.
+
3) Настроим вебхук, укажем адрес web-сервера Oktell, на который будут отправляться уведомления - https://user:password@myoktell.ru/Bpium/NewTask.
  
 
[[Файл:Bpium_webhook.png|center|800px]]
 
[[Файл:Bpium_webhook.png|center|800px]]
  
Создадим служебный сценарий '''HTTP404'''. Сохраняем в переменные адрес ресурса и содержимое значение функций '''Входной параметр 1''' и '''Входной параметр 4''', которые содержат соответственно адрес ресурса и содержимое запроса.
+
4) Создадим служебный сценарий '''HTTP404'''. Сохраняем в переменные адрес ресурса и содержимое значение функций '''Входной параметр 1''' и '''Входной параметр 4''', которые содержат соответственно адрес ресурса и содержимое запроса.
  
 
[[Файл:Bpium_404.png|center|800px]]
 
[[Файл:Bpium_404.png|center|800px]]
  
Анализируем адрес ресурса: если переменная содержит строку “/Bpium/NewTask”, то продолжаем обработку запроса, в противном случае завершаем сценарий.
 
Обработку содержимого будем производить в отдельном служебном сценарии '''BpiumNewTask''', который запустим асинхронно. Основной сценарий завершаем установкой кода ответа HTTP 200 в служебную переменную '''(сл) Возвращаемое значение 2'''.
 
  
В сценарии обработки содержимого запроса '''BpiumNewTask''' с помощью компонента '''Парсер''' разбираем полученное JSON-сообщение. Подробнее о работе с компонентом '''Парсер''' можно прочитать в статье [[Компонент Парсер|компонент Парсер]].
+
5) Анализируем адрес ресурса: если переменная содержит строку “/Bpium/NewTask”, то продолжаем обработку запроса, в противном случае завершаем сценарий.
Выделяем из полученного сообщения Название задачи, Описание задачи и идентификатор ответственного. Далее при помощи компонента '''Bpium''' получаем адрес электронной почты ответственного.
+
 
 +
6) Обработку содержимого будем производить в отдельном служебном сценарии '''BpiumNewTask''', который запустим асинхронно. Основной сценарий завершаем установкой кода ответа HTTP 200 в служебную переменную '''(сл) Возвращаемое значение 2'''.
 +
 
 +
7) В сценарии обработки содержимого запроса '''BpiumNewTask''' с помощью компонента '''Парсер''' разбираем полученное JSON-сообщение. Подробнее о работе с компонентом '''Парсер''' можно прочитать в статье [[Компонент Парсер|компонент Парсер]].
 +
 
 +
8) Выделяем из полученного сообщения Название задачи, Описание задачи и идентификатор ответственного. Далее при помощи компонента '''Bpium''' получаем адрес электронной почты ответственного.
 
Формируем текст письма и отправляем ответственному сотруднику.
 
Формируем текст письма и отправляем ответственному сотруднику.
  
 
[[Файл:Bpium_newtask.png|center|800px]]
 
[[Файл:Bpium_newtask.png|center|800px]]
  
Указываем в настройках web-сервера Oktell созданный сценарий.  
+
9) Указываем в настройках web-сервера Oktell созданный сценарий.  
  
 
[[Файл:Bpium_oktellwebserver.png|center|800px]]
 
[[Файл:Bpium_oktellwebserver.png|center|800px]]
  
Добавляем новую запись в каталог '''Задачи''', получаем уведомление на электронную почту.
+
10) Проверяем, что при добавлении новой записи в каталог '''Задачи''', получаем уведомление на электронную почту.
 +
 
 +
==Файлы==
  
'''Скачать''' [http://wiki.oktell.ru/images/9/97/Bpium_webhook_scr.zip архив со сценариями]
+
*[[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 поля: Название задачи, Описание и Ответственный.

Bpium tasks structure.png

3) Настроим вебхук, укажем адрес web-сервера Oktell, на который будут отправляться уведомления - https://user:password@myoktell.ru/Bpium/NewTask.

Bpium webhook.png

4) Создадим служебный сценарий HTTP404. Сохраняем в переменные адрес ресурса и содержимое значение функций Входной параметр 1 и Входной параметр 4, которые содержат соответственно адрес ресурса и содержимое запроса.

Bpium 404.png


5) Анализируем адрес ресурса: если переменная содержит строку “/Bpium/NewTask”, то продолжаем обработку запроса, в противном случае завершаем сценарий.

6) Обработку содержимого будем производить в отдельном служебном сценарии BpiumNewTask, который запустим асинхронно. Основной сценарий завершаем установкой кода ответа HTTP 200 в служебную переменную (сл) Возвращаемое значение 2.

7) В сценарии обработки содержимого запроса BpiumNewTask с помощью компонента Парсер разбираем полученное JSON-сообщение. Подробнее о работе с компонентом Парсер можно прочитать в статье компонент Парсер.

8) Выделяем из полученного сообщения Название задачи, Описание задачи и идентификатор ответственного. Далее при помощи компонента Bpium получаем адрес электронной почты ответственного. Формируем текст письма и отправляем ответственному сотруднику.

Bpium newtask.png

9) Указываем в настройках web-сервера Oktell созданный сценарий.

Bpium oktellwebserver.png

10) Проверяем, что при добавлении новой записи в каталог Задачи, получаем уведомление на электронную почту.

Файлы