Внешние интеграции

В этом разделе создаются внешние интеграционные каналы, посредством которых производится настройка взаимодействия Oktell Studio с внешним миром по интерфейсу http(s) WebHook и WebSocket, а также канал подписки на события из Oktell Studio.

Интеграционные каналы:

  • Публичный канал – открытый канал интеграции для обработки входящих запросов от внешних систем (при получении запроса запускается указанный SVC сценарий) и для определения URL исходящих запросов

  • Событийный канал Eventing – канал интеграции, в котором внешние информационные системы получают события от Oktell Studio по активностям, на которые они подписываются

Oktell Studio открыт только token-интерфейсами на обработку входящих запросов

Стартовая страница раздела представлена следующим образом:

webservice
Рис. 1. Общий вид раздела

Поля, доступные при создании и редактировании записи:

webserviceAdd
Рис. 2. Экранная форма создания нового объекта
Блок Название поля Описание

Основные

Код

Код канала интеграции

Тип канала интеграции

Выбор между доступными в текущем Домене каналами интеграций:

  • Публичный канал - тип канала интеграции, при котором фиксируется URL внешней системы для исходящих запросов и определяется SVC сценарий для обработки входящих запросов

  • Событийный канал Eventing – канал, через который внешние ИС могут подписываться на события из Oktell Studio (подробно Eventing канал подписки на события описан в отдельном документе)

Ожидать завершение сценария обработки входящих обращений

Если выкл, то Система сразу отправляет 200 OK на входящий WebHook. Если включен, то отправляется результат выполнения сценария обработки запроса

  • сценарий должен завершится корректно (компонент Стоп)

  • переменная с именем response_code содержит http код ответа, по умолчанию 200

  • переменная с именем response_content содержит тело ответа в необходимом формате, по умолчанию отсутствует

  • переменная с именем response_headers дополнительные заголовки ответа. По умолчанию пустая строка и только стандартные HTTP-заголовки. Если среди указанных заголовков отсутствует стандартный заголовок Content-Type, то по умолчанию его значение устанавливается в application/octet-stream. Пример:

{"content-type":"text/plain; charset=utf-8"}

Роль WS

Локальный токен

При получении запроса на этот токен Система идентифицирует его принадлежность к текущему каналу интеграции WebService. Запрос должен прийти на любой WebServer, который может обслуживать текущий домен. Токен генерируется автоматически и не может быть изменен. Адреса на которые можно отправлять запросы от внешних систем ([WS] - IP/fqdn Web Server Oktell Studio):

  • Публичный канал

    • WebHook запрос на http(s)://[WS]/api/token/v1/[token_local]

    • WebSocket подключения на ws(s)://[WS]/ws/token/v1/[token_local]

  • Канал подписки Eventing

    • WebHook подписка на http(s)://[WS]/api/token/v1/[token_local]/subscribe

    • WebSocket подключение на ws(s)://[WS]/ws/token/v1/[token_local]/subscribe

Внешняя система

URL для исходящих запросов

Адрес внешней точки интеграции для формирования исходящих от Системы запросов к внешним сервисам. Должен начинаться на http:// или https:// или ftp:// или ftps://

Основной токен исходящих запросов

Токен взаимодействия с внешней системой. Используются алгоритмы сценария отправки

Вторичный токен исходящих запросов

Вторичный токен взаимодействия с внешней системой. Используются алгоритмы сценария отправки

Сценарии обработки

Сценарий обработки входящего WebHook запроса

Служебный сценарий, запускаемый на каждый входящий WebHook запрос. На вход сценария передаются 7 параметров

  • startparam(1) - JSON-объект связанного с каналом интеграции

  • startparam(2) - Метод HTTP-запроса. Например, "POST"

  • startparam(3) - URL HTTP-запроса

  • startparam(4) - Тело запроса

  • startparam(5) - Список заголовков из HTTP-запроса

  • startparam(6) - IP-адрес отправителя HTTP-запроса

  • startparam(7) - протокол HTTP-запроса

Сценарий обработки входящего WebSocket запроса

Служебный сценарий, запускаемый на каждое сообщение внутри установленного WebSocket канала, входящий WebHook запрос. На вход сценария передаются основные параметры

* код WebSocket канала * сообщение

Комментарий

Комментарии

Возможность указать полезную информацию по учетной записи

Подробно протокол WebService Eventing, события и примеры взаимодействия описаны в отдельном документе, доступном через запрос в службу Технической Поддержки