Instant messaging processor (im)
Описание
Процессор обмена быстрыми сообщениями с мессенджерами.
Обеспечивает коммуникацию с мессенджерами. Поступающие из мессенджеров абонентские сообщения размещает в коллекции модели данных `/rest/v1/model/im/Messages`, а создаваемые в ней сообщения `sending` отправляет абонентам мессенджеров.
Формирует коллекции/классы: im/Accounts, im/RemoteParties, im/Messages. Допускает их дальнейшую модификацию в сторону расширения состава свойств и вариантов значений перечислимых полей.
Код |
|
Режим работы |
|
Режим резервирования |
|
Типы сайтов |
|
Слой |
|
Размещение |
|
Сохранение и восстановление состояния при перезагрузке |
|
Приложение |
|
Возможности
-
Сообщения могут быть текстовыми, в виде картинок, звуковых файлов и пр. Текст сообщения размещается в поле сущности `/im/Message`, а прочие варианты сохраняются в виде вложений (поле `file`) и доступны через `/rest/v1/model/im/Messages/ID_MESSAGE/file`.
-
Поддерживает добавление адаптеров к разным типам мессенджеров через создание плагинов (erlang) или реализацию стратегий в сценариях.
Ограничения
-
Каждый отдельный мессенджер требует уникальных параметров, которые могут быть установлены в опциях аккаунта (поле `options` сущности im/Accounts). В частности для Telegram там обязательно должен быть указан `token`, а также опционально `disable_notification` (`true` | `false`) и `parse_mode` (`none`, `markDown`, `HTML`).
-
В составе платформы присутствует коннектор к Telegram. Прочие коннекторы требуют проектной разработки, могут быть реализованы в виде сценариев (отдельно сценарий получения сообщений и размещения в коллекциях, отдельно сценарий отправки одного конкретного сообщения).
Параметры
Пример конфигурации
Управление конфигурацией производится в приложении, доступном для администраторов мастер-домена. Приложение скрывает полное содержание конфигурации, однако тем не менее оно доступно через API.
Конфигурация содержит раздел для описания всех экземпляров всех ролей. Параметры определяются для каждого конкретного экземпляра роли.
{
"name": "im1",
"roletype": "im",
"iface": "eth0",
"group": 11330,
"order": 1
}