4210 views
# Express - Платформа BotX (Общее описание) ## Бот ### Создание Бот создается через интерфейс в панели администратора корпоративного сервера ### Описание полей * **id** [UUID] - уникальный идентификатор в системе BotX. Используется для идентификации в BotX и приложение бота. * **app_id** [String] - уникальный текстовый идентификатор бота * **url** [String] - ссылка на API бота * **name** [String] - имя бота * **description** [String] - описание * **enabled** [Boolean] - включен/выключен бот * **status_message** [String] - статус сообщение * **secret_key** [String] - секретный ключ, генерируется в момент создания бота * **proto_version** [Integer] - используемая версия протокола (BotX -> Bot) ### Пример бота * **id**: "dcfa5a7c-7cc4-4c89-b6c0-80325604f9a4" * **app_id**: "trello" * **url**: "https://bot.com/api/v1/botx_trello" * **name**: "Trello Bot" * **description**: "Бот для работы с Trello досками" * **enabled**: true * **status_message**: "It works!" * **secret_key**: "secret" * **proto_version**: 4 ## Свойства бота ### Редактирование Перейти в интерфейс редактирования бота можно через страницу бота в панели администратора ### Доступные свойства: * **allowed_data** (all|commands|none) (по умолчанию - commands) - определяет, какие типы данных может принимать бот. * **all** - бот принимает все сообщения отправленные в чат * **commands** - бот принимает сообщение только если его упомянули/заменшили. * **none** - бот не принимает сообщений * **allow_chat_creating** (true|false) (по умолчанию - false) - позволить боту создавать чаты * **show_in_catalog** (true|false) (по умолчанию - true) - отображать бота в каталоге ботов * **communication_availability** (corporate|trust|local|all) (по умолчанию - corporate) - определяет, какой тип юзеров может взаимодействовать с ботом * **corporate** - корп. юзер с любого CTS * **trust** - корп. юзер с трастового CTS * **local** - корп. юзер с локального CTS * **all** - любой юзер (в том числе с RTS) * **use_botx_ca_cert** (true|false) (по умолчанию - false) - использовать SSL CA сертификат BotX при отправке запроса к боту * для использования BotX SSL CA сертификата необходимо загрузить его в панели администратора на странице настроек сервера (/settings/server). Примечание: должна быть загружена полная цепочка выдающих серверов, т.е. сертификат следующего вида ``` -----BEGIN CERTIFICATE----- Intermediate CA -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- Root CA -----END CERTIFICATE----- ``` * для использования Botx SSL CA сертификата необходимо установить у бота аттрибут "Версия протокола" в значение 3 или выше * после смены сертификата требуется перезагрузка контейнера * после отключения свойства (если бот раннее использовал его) требуется перезагрузка контейнера * **use_pds_token** (true|false) (по умолчанию - false) - если true, то при каждом обращение к боту генерируется JWT токен, который подписывается ПДС ключом. Полученный JWT токен передается при каждой отправке команды/запроса боту в HTTP заголовке `pds_token` * **pds_key** (string) - ключ, которым будет подписываться PDS JWT токен. Ключ представляет из себя валидный Private RSA ключ. Подпись выполняется с использованием RS256 алгоритма * **use_open_id_access_token** (true|false) (по умолчанию - false) - если true, то при обращение к боту юзером передается open_id токен юзера в заголовке `open_id_access_token` ## Разработка ботов ### Как приступить к разработке ботов, используя наши инструменты 1. Ознакомьтесь с документацией [BotX API](/s/E9MPeOxjP) 2. Ознакомьтесь с документацией [Bot API v4](/s/4IHk-iFDR) 3. Ознакомьтесь с документацией официального SDK [pybotx](https://github.com/ExpressApp/pybotx) и [async-box](https://github.com/ExpressApp/async-box) (шаблон бота) 4. Ознакомьтесь с примером простого бота на основе `async-box` - [todo-bot](https://github.com/ExpressApp/todo-bot) При разработке бота вам могут понадобиться виджеты (многие из них уже реализованы в библиотеке [pybotx-widgets](https://github.com/ExpressApp/pybotx-widgets)). А для удобной работы с состоянием пользователя используйте библиотеку [pybotx-fsm](https://github.com/ExpressApp/pybotx-fsm). --- #### Статьи - [Что такое чат-боты и SmartApp](https://docs.express.ms/chatbot-and-smartapp/developer-guide/getting-started/what-is-chatbot-and-smartapp/) #### Библиотеки - [pybotx](https://github.com/ExpressApp/pybotx) - [async-box](https://github.com/ExpressApp/async-box) - [pybotx-fsm](https://github.com/ExpressApp/pybotx-fsm) - [pybotx-smartapp-rpc](https://github.com/ExpressApp/pybotx-smartapp-rpc) - [pybotx-smart-logger](https://github.com/ExpressApp/pybotx-smart-logger) - [pybotx-smartapp-smart-logger](https://github.com/ExpressApp/pybotx-smartapp-smart-logger) - [smartapp-bridge](https://github.com/ExpressApp/smartapp-bridge) - [smartapp-sdk](https://github.com/ExpressApp/smartapp-sdk) #### Примеры ботов - [next-feature-bot](https://github.com/ExpressApp/next-feature-bot) - [todo-bot](https://github.com/ExpressApp/todo-bot) - [weather-smartapp](https://github.com/ExpressApp/weather-smartapp) - [next-feature-smartapp](https://github.com/ExpressApp/next-feature-smartapp) - [next-feature-smartapp-frontend](https://github.com/ExpressApp/next-feature-smartapp-frontend)