im/Accounts

Коллекция IM-аккаунтов (Instant Messaging). Коллекция создается и используется микросервисом 'im'.

Аккаунты создаются с привязкой к каналу обмена быстрыми сообщениями, устанавливающему общие сценарии обработки.

Тип хранилища: category.

Table 1. Поля класса
Поле Описание

id

Идентификатор.

name

Название аккаунта.

channel

Тип канала обмена мгновенными сообщениями. Значение соответствует коду существующего im-каналам.

Аккаунты telegram, whatsapp, vk обслуживаются встроенными стратегиями.

Для работы аккаунта с типом 'whatsapp' или 'vk' должен быть создан канал интеграции типа 'im', имеющий точно такой же идентификатор, как и этот аккаунт im. Веб-хуки с входящими сообщениями от мессенджера поступают на страницу вебсервера '/api/im/v1/:TOKEN', и оттуда по идентификатору канала интеграции, чей токен указан в урле для веб-хука, попадают в сервис обслуживания аккаунта im.

Для удобства при создании аккаунта 'whatsapp' или 'vk' автоматически создается канал мессенджера /rest/v1/uc/imchannels и канал интеграции /rest/v1/service/integration_points. При этом полезная для регистрации веб-хука информация попадает автоматически в поле 'webhookInfo'.

enabled

Выключатель аккаунта.

options

Дополнительные произвольные опции аккаунта по типам каналов.

Для Telegram:

  • token - обязательно. При регистрации бота через @BotFather токен сообщается в качестве результата.

  • disable_notification (true | false) - опционально. Выключатель тихого режима доставки сообщений. По умолчанию 'false'.

  • parse_mode ('none' | 'markDown' | 'HTML') - опционально. Селектор режима форматирования сообщений. По умолчанию 'none'.

Для Whatsapp business:

  • token - обязательно. Токен, предоставленный сервисом провайдера при регистрации веб-хука. Используется для отправки любых запросов к серверам мессенджера.

  • phoneNumberId - обязательно. Номер телефона учетной записи, подставляемый во все запросы на отправку исходящих сообщений.

  • proxyUrl - опционально. Позволяет направлять запросы к мессенджеру на http-прокси сервер, сдвигая весь урл на один уровень страницы. Например, если в качестве значения указать `http://proxy.com/', то вместо 'https://graph.facebook.com/v20.0/…​' вызов будет отправлен на 'http://proxy.com/graph.facebook.com/v20.0/…​'. Система осуществляет запросы к 'https://graph.facebook.com/' и 'https://lookaside.fbsbx.com/', таким образом на прокси сервере должны быть настроены маршруты для этих доменных адресов.

  • fixTo - опционально. Позволяет применить регулярное выражение для осуществления замены номера телефона абонента при отправке сообщений. Так, если указать /reg/^79/789, то вместо 79991234567 в сообщение подставится 789991234567.

Для VK:

  • token - обязательно. Токен, предоставленный сервисом провайдера при создании ключа доступа в VK. Используется для отправки любых запросов к серверам мессенджера.

  • server_secret - обязательно. Строка, которую должен вернуть сервер при подтверждении адреса для webhook. Предоставляется на вкладке 'Callback API' при настройке сообщества VK в разделе 'Работа с API'.

  • client_secret - обязательно. Секретный ключ, задаваемый на вкладке 'Callback API' при настройке сообщества VK в разделе 'Работа с API'.

  • groupId - опционально. Идентификатор группы. Системой не применяется.

statusText

Статусное сообщение. Заполняется системой при обнаружении сбоев в сценариях взаимодействия.

webhookInfo

Поле, в которое системой автоматически заносятся сведения для регистрации на стороне провайдера: страница для веб-хука и проверочный токен.

Пример значения
{
  "url": "/api/im/v1/11259121169cdff186add3ed5fe27bba",

  "verifyToken": "d4012683-0191-a406-c746-7cd30a921f58"
}

При регистрации системы для получения веб-хуков необходимо к предоставленной странице приписать схему и имя хоста, по которым доступен сервер. Например, 'https://pbx.era-platform.ru', чтобы получилось 'https://pbx.era-platform.ru/api/im/v1/…​'.