Канал интеграции (integration_point)
Описание
Канал интеграции в основном определяет точку обработки HTTP(s) веб-хуков, поступающих из внешних систем, а также точку для websocket подключения с предопределенными правами.
В отдельных случаях канал интеграции определяет URL внешней системы для отправки в нее HTTP запросов из сценариев.
Поддерживает потоковую асинхронную обработку сообщений, поступающих из websocket-подключений, и отправку в них ответных сообщений, а также событий.
Поддерживает создание проектных API с помощью служебных сценариев.
Websocket-подключение к каналу интеграции производится с указанием token_local непосредственно в URL или в заголовке Authorization. Подробнее.
Http(s)-подключение к каналу интеграции производится с указанием token_local. Используется для обращения к проектным API, а также для скачивания записей разговоров, вебхуков от мессенджеров.
Ограничения
-
Коллекция доступна в любом домене.
-
Лицензируется количественным параметром: расходуется лицензия на тип канала.
Поля
{
"id": uuid,
"code": str,
"type": str,
"token_local": str,
"token_remote": str,
"token_remote2": str,
"url": str,
"recv_svcscriptcode": str,
"send_svcscriptcode": str,
"recv_svcscriptcode_ws": str,
"send_svcscriptcode_ws": str,
"opts": {
"allow_files_api": bool,
"comment": str,
"issync": bool,
"recv_timeout": int,
"roles": ["special01"],
"userid": "37a85e8-1a01-835f-4490-e78015a20052",
"title": str
},
"ext": {
"ct": date,
"lwt": date
}
}
Спецификация | Описание |
---|---|
Поле: |
Идентификатор. Может быть задан при создании, иначе генерируется системой. |
Поле: |
Код. Применяется для ассоциирования с другими сущностями и компонентами сценариев. |
Поле: |
Тип канала интеграции. |
Локальный токен. |
|
Поле: |
Внешний токен. |
Поле: |
Дополнительный внешний токен. |
Маска IP-адреса отправителя запроса, для которого разрешено обращение к API через данный токен.
|
|
Код служебного сценария, запускаемого для обработки входящего HTTP-запроса с использованием token_local. Позволяет реализовывать проектные API. Эндпойнт для обращения к сценарию: В служебный сценарий передаются на вход следующие параметры (доступны в выражениях методом startparam(N)):
В служебном сценарии созданы локальные строковые переменные, значения которых определяют HTTP-ответ:
Формат тела может быть произвольным и определяется заголовком Content-Type. |
|
Поле: |
Код служебного сценария, запускаемого для отправки HTTP-запроса в канал из сценариев чат-бота |
Код служебного сценария, запускаемого для обработки входящего websocket-сообщения с использованием token_local. Позволяет реализовывать проектные API. В рамках websocket подключения к токену метод для обращения к API сценария: ["message", {"qid": …, "data": …, …}]. В служебный сценарий передаются на вход следующие параметры (доступны в выражениях методом startparam(N)):
В служебном сценарии созданы локальные строковые переменные, значения которых определяют HTTP-ответ:
Формат ответного сообщения:
[ "message_result", { "qid": ..., "success": true, "data": ... } ] |
|
Поле: |
Код служебного сценария, запускаемого для отправки websocket-сообщения в канал из сценариев чат-бота |
Поле: |
URL провайдера данных. Применяется при построении полного URL в компоненте "Веб-запрос" сценариев. Актуально для доменов с типами солюшенов, исключающими возможность указания полных адресов в свойствах компонента "Веб-запрос". |
Поле: |
|
Поле: |
Допуск на работу с файлами. Доступно только для type= |
Поле: |
Допуск подключения по websocket на работу с конкретными Websocket Token-API. Можно перечислить конкретные, либо разрешить для всех, указав |
Поле: |
Произвольный комментарий |
Поле: |
Выключатель синхронного режима запуска сценариев, |
Поле: |
Максимальное время исполнения сценария recv_svcscript в секундах. 0 означает, что будет применено значение, определённое веб-сервером (10 сек.). Максимально позволенное значение - 60 сек. |
Поле: |
Определяет состав ролей для авторизации через сервис IAM |
Поле: |
Идентификатор пользователя системы, от имени которого выполняются запросы. Применяются также роли этого пользователя. |
Поле: |
Произвольный заголовок |
Поле: |
Позволяет расширять состав произвольными ключами и значениями |
Поле: |
Время создания объекта |
Поле: |
Время последней модификации объекта |
Типы канала интеграции
Значение | Описание |
---|---|
|
Канал интеграции общего назначения. Применяется при:
|
|
Канал интеграции для подписчиков на события системы. В каждый канал интеграции вне зависимости от количества подключений и подписок, каждое событие отправляется не более 1 раза. Поля recv_svcscriptcode, recv_svcscriptcode_ws, send_svcscriptcode и send_svcscriptcode_ws не используются. |
|
Канал интеграции для вебхуков из мессенджеров. Поступающие сообщения на страницу веб-сервера '/api/im/v1/:TOKEN' пересылаются в сервис обслуживания im-аккаунтов. Поля url, recv_svcscriptcode, recv_svcscriptcode_ws, send_svcscriptcode и send_svcscriptcode_ws не используются. |
|
Определяются солюшеном домена. Состав прочих типов каналов интеграции и служебные сценарии обработки содержатся в ассетах солюшена. Характер работы аналогичен каналу |