im/Accounts

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

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

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

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

id

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

name

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

channel

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

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

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

Для удобства при создании аккаунта 'whatsapp', 'vk' или 'max' автоматически создается канал мессенджера /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 - опционально. Идентификатор группы. Системой не применяется.

Для MAX:

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

  • secret - опционально. Секретный ключ, сообщаемый серверу мессенджера при подписке на уведомления о новых сообщениях, и отправляемый в каждом уведомлении. Применяется в режиме 'webhook' по https. Если поле не задано, то в качестве секрета выступает значение account.webhookInfo.verifyToken.

  • disable_link_preview - опционально. Выключатель режима подготовки сервером мессенджера превью для ссылок в отправляемых сообщениях.

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

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

  • webhookHost - опционально, для режима канала mode='webhook'. Режим работы webhook в мессенджере требует осуществления подписки с передачей URL для вебхук-запроса. Путь автоматически размещается в поле webhookInfo.url, а в этом поле должна быть размещена host-часть url для webhook-запроса, например 'https://my-public-domain.org:443'.

statusText

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

webhookInfo

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

  • url - путь к эндпойнту для вебхук-запроса со стороны сервиса мессенджера. Заполняется автоматически и регулярно, размещая сюда токен приввязанного канала интеграции.

  • verifyToken - опционально, размещает

  • host - опционально. Может быть заполнен администратором как альтернатива options.webhookHost для канала мессенджера MAX.

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

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

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