Создает новый экземпляр бота
Optionaltype: TAppTypeТип платформы (по умолчанию Алиса)
OptionalbotController: BotController<IUserData>Контроллер с логикой
OptionaluseGlobalState: boolean = falseОпределяет нужно ли использовать глобальное состояние(mmApp). Не рекомендуется использовать.
Protected_Контекст приложения
Protected_Авторизационный токен пользователя. Используется для авторизованных запросов (например, в Алисе)
Protected_Контроллер с бизнес-логикой приложения. Обрабатывает команды и формирует ответы
Protected_Полученный запрос от пользователя. Может быть JSON-строкой, текстом или null
Protected_Экземпляр HTTP-сервера
Возвращает тип платформы
Protected_ProtectedОпределяет тип платформы и возвращает соответствующий класс для обработки
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Объект с типом платформы и классом обработчика
Добавляет команду для обработки пользовательских запросов
Уникальный идентификатор команды
Триггеры для активации команды
text.includes(...))..test(text)).isPattern учитывается только если в slots нет RegExp.RegExp, isPattern = false игнорируется, и каждый элемент
обрабатывается согласно своему типу.Optionalcb: (userCommand: string, botController: TBotController) => string | voidФункция-обработчик команды
Использовать регулярные выражения (по умолчанию false)
Простая команда со словами:
appContext.addCommand(
'greeting',
['привет', 'здравствуй'],
(cmd, ctrl) => {
if (ctrl) ctrl.text = 'Здравствуйте!';
}
);
Команда с регулярными выражениями:
// Обработка чисел от 1 до 999
bot.addCommand(
'number',
['\\b([1-9]|[1-9][0-9]|[1-9][0-9][0-9])\\b'],
(cmd, ctrl) => {
if (ctrl) ctrl.text = `Вы ввели число: ${cmd}`;
},
true // включаем поддержку регулярных выражений
);
Команда с доступом к состоянию:
bot.addCommand(
'stats',
['статистика'],
async (cmd, ctrl) => {
if (ctrl) {
// Доступ к пользовательским данным
const visits = ctrl.userData?.visits || 0;
ctrl.text = `Вы использовали бота ${visits} раз`;
// Доступ к кнопкам и другим UI элементам
ctrl.buttons
.addBtn('Сбросить статистику')
.addBtn('Закрыть');
}
}
);
Удаляет все команды
Возвращает контекст приложения
ProtectedgetProtectedФормирует конфигурацию для тестирования конкретной платформы. Создает структуру данных, соответствующую формату выбранной платформы
Пользовательский запрос
Номер сообщения в диалоге
Данные из хранилища
OptionaluserBotConfig: TUserBotConfigCb | nullФункция для пользовательской конфигурации
Конфигурация для выбранной платформы
Инициализирует контроллер с бизнес-логикой бота Устанавливает контроллер, который будет обрабатывать команды и формировать ответы
Контроллер бота
Инициализирует конфигурацию приложения
Конфигурация приложения
Инициализирует тип бота через GET-параметры Если в URL присутствует параметр type с корректным значением, устанавливает соответствующий тип платформы
true если инициализация прошла успешно
Запускает обработку запроса Выполняет основную логику бота и возвращает результат
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Результат выполнения бота
Задает конфигурацию приложения Устанавливает настройки бота, включая интенты, базу данных и другие параметры
Конфигурация приложения
Устанавливает контент запроса Используется для передачи данных от пользователя в бота
Контент запроса
Устанавливает режим разработки
Флаг включения режима разработки
Устанавливает контроллер с базой данных
Запускает HTTP-сервер для обработки запросов. Создает сервер на указанном хосте и порту
Имя хоста
Порт
OptionaluserBotClass: TemplateTypeModel | null = nullПользовательский класс бота
Запускает интерактивное тестирование бота Позволяет вводить команды и получать ответы в консоли
Optionalparams: IBotTestParams = {}Параметры тестирования
Класс для тестирования бота Предоставляет интерактивный режим для отладки и тестирования функциональности
BotTest
Example