Поддержка
Собрали ответы на популярные вопросы, чтобы пользоваться eXpress было легко и удобно. Не нашли ответ на свой вопрос? Свяжитесь с нашей поддержкой.
- Приветствуем в eXpress
- Поддержка eXpress
- Знакомство с eXpress, терминология
- Установка, обновления, требования
- Регистрация и вход в приложение
- Профиль пользователя
- Чаты, каналы и обсуждения
- Контакты
- Теги и вкладки
- Файлы
- Звонки и конференции
- Уведомления и метки приложения
- Фоновые ограничения на мобильных
- Боты и SmartApps
- Чат-боты и SmartApps
- Готовые боты и SmartApps
- Заказные боты и SmartApps | API BotX
- Решение проблем с чат-ботами и SmartApps
- Диагностика, логи, кэш
- Панель администратора
- Портал поддержки в Jira
- Поддержка для администраторов
- Политика по изменениям в БД
- Документация eXpress
- Политика конфиденциальности
Заказные боты и SmartApps | API BotX
- Создание ботов и SmartApps
- Как устроен чат-бот и с чего начать разработку
- Как устроен SmartApp и с чего начать разработку
- API BotX
Платформа eXpress поддерживает создание собственных ботов и SmartApps. Создать бота или SmartApp можно самостоятельно, используя API BotX, либо заказать у поставщика eXpress.
Создание ботов и SmartApps 
Обычные пользователи могут добавлять ботов и SmartApps на сервер?
Пользователь без доступа к консоли администратора не может добавить бота на сервер самостоятельно — для внедрения бота необходимо обращаться в поддержку своей организации.Кто может создавать ботов и SmartApps?
Боты и SmartApps могут быть созданы:
- Командой разработки eXpress. Заявки на внедрение и доработку таких ботов и SmartApps делаются через аккаунт-менеджера со стороны eXpress или коммерческий отдел.
- Заказчиком самостоятельно с использованием API BotX. Описание API доступно по ссылкам ниже.
- Партнёрами заказчика. Заявки на доработку таких ботов делаются через поддержку организации-партнёра.
Есть конструктор ботов или аналог Bot Father из Telegram?
Нет, ботов необходимо создать и подключить к корпоративному серверу самостоятельно или на заказ.Как устроен чат-бот и с чего начать разработку 
Чат-бот в eXpress — это отдельный тип пользователя, за которым скрывается веб-приложение на сервере вашей организации. Для сотрудника бот выглядит как контакт и чат с ним; для платформы это HTTP-сервис, которому корпоративный сервер пересылает сообщения и от которого принимает ответы. Участников в этой схеме три.
| Участник | Что делает |
|---|---|
| Приложение eXpress | Показывает бота как контакт. Всё, что пользователь пишет боту или нажимает в его сообщениях, уходит на корпоративный сервер как обычное сообщение. |
| BotX на корпоративном сервере CTS |
Посредник между мессенджером и ботами. Доставляет боту сообщения HTTP-запросом и принимает от бота запросы на отправку сообщений, создание чатов, поиск пользователей. |
| Бэкенд бота | Веб-приложение на сервере организации, обычно docker-контейнер. Принимает команды от BotX, обращается к внутренним системам (Jira, 1С, почта) и отвечает через BotX. Его адрес администратор указывает при создании бота в консоли администратора. |
Отсюда два API, которые важно не путать:
- Bot API реализует сам бот: адреса, на которые BotX присылает команды пользователей и системные события (
POST /command), результаты отправки сообщений (POST /notification/callback) и запрос списка команд для меню в чате (GET /status). Версия Bot API задаётся в карточке бота в поле Версия протокола. Описание — . - BotX API предоставляет платформа: методы, которые бот вызывает, чтобы действовать от своего имени — отправить сообщение с кнопками, создать чат, найти пользователя, скачать файл. Описание — , готовые запросы на типовые случаи — .
Что происходит, когда пользователь пишет боту?
Сообщение уходит на корпоративный сервер, BotX доставляет его боту запросом POST /command. Бот обязан за 5 секунд ответить, что принял команду, иначе пользователь увидит «Не удалось получить ответ от бота». Дальше бот работает сколько нужно и отвечает через BotX API; результат доставки приходит боту отдельным запросом. Галочки у сообщения пользователя показывают эти этапы: одна серая — отправлено, две серые — BotX получил, две синие — бот подтвердил приём. Две синие галочки означают, что бот ответил на запрос, а не то, что он выполнил задачу. Подробности — .
Оба направления защищены секретным ключом бота, который создаётся вместе с ботом в консоли администратора: BotX подписывает им каждый запрос к боту, а бот по нему получает токен для BotX API. Трафик между BotX и ботом по умолчанию идёт без TLS внутри сети организации; шифрование включается загрузкой сертификата на сервер и настройкой в карточке бота — .
С чего начать разработку бота?
- Понять платформу: что такое корпоративные и региональные серверы, что бот знает о пользователях с других серверов, что означают галочки — .
- Решить, нужен ли боту собственный пользовательский интерфейс. Если да — это SmartApp, см. следующий подраздел.
- Подготовить сервер: Linux, Docker, PostgreSQL, Redis, сетевой доступ к корпоративному серверу в обе стороны — , разделы «Предварительные условия» и «Системные требования».
- Зарегистрировать бота в консоли администратора: Боты > Создать бота, указать имя,
APP_ID, URL бэкенда и версию протокола, затем сохранить ID и Secret key — . Кому бот доступен и что видит в групповых чатах, настраивается там же — . - Реализовать Bot API и получить токен BotX API — , .
- Не писать всё с нуля: для Python есть библиотека pybotx, шаблон бота async-box и примеры next-feature-bot и todo-bot — , разделы «Библиотеки» и «Примеры ботов»; исходный код — . Язык при этом любой: оба API — обычный HTTP с JSON.
- Развернуть бота в Docker по инструкции и обновлять по .
Что ещё умеет бот
- Кнопки под сообщением и клавиатура, виджеты из нескольких сообщений — , .
- Ссылка или QR-код, открывающий чат с ботом и сразу передающий ему команду — .
- Создание чатов, управление участниками и администраторами, закрепление сообщений, треды — .
- Поиск пользователей своего сервера по почте, логину или HUID — .
- Приём и отправка файлов — .
- История изменений платформы BotX по версиям — .
Как устроен SmartApp и с чего начать разработку 
SmartApp — это чат-бот, у которого есть собственный интерфейс: одностраничное веб-приложение, которое открывается внутри eXpress. Всё, что сказано о ботах в предыдущем подразделе, относится и к SmartApp: у него тот же бэкенд-бот, тот же BotX и те же два API. Добавляется фронтенд и способ его доставить пользователю.
| Часть SmartApp | Что это |
|---|---|
| Фронтенд | Веб-приложение на любом стеке (React, Vue, Angular), которое приложение eXpress показывает во встроенном окне: на Web и Desktop это iframe, на мобильных — WebView. С мессенджером фронтенд общается через библиотеку : контакты, чаты, файлы, защищённое хранилище, NFC и Bluetooth. |
| Бэкенд | Обычный чат-бот, у которого в консоли администратора заполнен блок SmartApp. Хранит статику фронтенда, обрабатывает его запросы, обращается к внутренним системам организации — . |
| BotX на корпоративном сервере CTS |
Посредник: фронтенд никогда не обращается к своему бэкенду напрямую. Запрос из интерфейса уходит через приложение eXpress в BotX, оттуда боту, и ответ возвращается тем же путём. |
Какие бывают SmartApps?
Разработчик выбирает один из трёх видов по тому, откуда берётся фронтенд, и от этого зависит поведение приложения без сети — .
- С кешированием. Фронтенд собирается в архив (бандл), который приложение eXpress скачивает с бота и хранит на устройстве в зашифрованном виде. Открывается мгновенно и работает без сети. Самый частый выбор для приложений, написанных с нуля.
- Без кеширования. Фронтенд каждый раз запрашивается с бота, как обычный сайт. Не работает без сети, но умеет проксировать файлы из корпоративной сети.
- С проксированием. Во встроенном окне открывается уже существующий внутренний веб-ресурс организации, доступ к нему идёт через корпоративный сервер. Так публикуют готовые системы, не переписывая их. Ограничения — в подразделе Какие ограничения у Proxy SmartApp?
Как фронтенд общается с ботом?
Фронтенд вызывает метод SDK, приложение eXpress передаёт событие в BotX, BotX доставляет его боту как системное событие в POST /command, бот отвечает через BotX API, и ответ приходит во фронтенд. Этот обмен называется SmartApp RPC — , раздел «Взаимодействие SmartApp frontend и backend»; методы со стороны фронтенда — . Бот может и сам обратиться к пользователю: прислать push-уведомление или обновить счётчик на иконке приложения — .
Как приложение eXpress показывает SmartApp — размер окна, закрепление на панели, предзагрузка, полноэкранный режим на мобильных, — бот сообщает манифестом, который отправляет на BotX — , раздел «Отправка SmartApp-манифеста». У SmartApp с кешированием есть и второй манифест, внутри бандла: он задаёт версию сборки и способ обновления — .
С чего начать разработку SmartApp?
- Выбрать вид SmartApp — . Если задача — показать внутри eXpress уже существующую систему, обычно достаточно готового Proxy SmartApp из коллекции.
- Спроектировать по плану из документации: способ аутентификации бота во внешней системе, спецификация запросов фронтенд ↔ бэкенд, проекты бэкенда и фронтенда, сборка и публикация — .
- Подготовить сервер и зарегистрировать бота в консоли администратора так же, как для обычного бота, дополнительно заполнив блок SmartApp с
App ID— . - Написать бэкенд: обычный бот, который дополнительно отдаёт статику фронтенда и обрабатывает события SmartApp — .
- Написать фронтенд: подключить SmartApp SDK, вызвать
readyпри запуске, учесть требования к сборке бандла — , . - Отладить: в веб-приложении eXpress есть режим отладки SmartApps, который открывает локальную сборку фронтенда вместо опубликованной; на iOS и Android доступна удалённая отладка через Safari и Chrome — .
- Отправить манифест на BotX и развернуть бота; для SmartApp с проксированием дополнительно нужны поддомен корпоративного сервера и сертификат — .
Что ещё умеет SmartApp
- Открываться по ссылке из чата или письма и получать параметры — .
- Появляться в карточке контакта и в меню «Отправить в» — , .
- Загружать файлы с устройства с выбором качества медиа и открывать файлы — , .
- Хранить токены и настройки в защищённом хранилище на устройстве — .
- Читать NFC-метки, работать с Bluetooth и геолокацией на мобильных — .
- Подстраиваться под тему и язык приложения — , .
- Пускать пользователя во внешнюю систему без пароля через SSO — , раздел «Аутентификация в интегрируемых сервисах».
API BotX 
О ботах в базе знаний:
Документация по API BotX:
- — протокол отправки данных от BotX к боту (BotX → Bot). Версия протокола задаётся на странице редактирования бота в панели администратора, в поле Версия протокола.
- — API сервиса BotX. Позволяет боту взаимодействовать с внутренними сервисами eXpress.
Документация по SmartApps:
Репозиторий GitHub с библиотеками и примерами: