umbot
    Preparing search index...

    API Reference

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

    Свойство Тип Описание
    text string Текст ответа бота
    tts string | null Текст для преобразования в речь
    buttons Buttons Управление кнопками интерфейса
    card Card Управление карточками и галереями
    nlu Nlu Обработка естественного языка
    sound Sound Управление звуковыми эффектами
    userId string | number | null Идентификатор пользователя
    userToken string | null Токен авторизации пользователя
    userCommand string | null Текущая команда пользователя (в нижнем регистре)
    originalUserCommand string | null Оригинальная команда пользователя
    userData TUserData Пользовательские данные
    isAuth boolean Статус авторизации
    isScreen boolean Наличие экрана у пользователя
    isEnd boolean Флаг завершения сессии, поведение зависит от платформы, для каких-то платформа закрывается сам чат, а где-то флаг игнорируется.
    isSend boolean Статус отправки запроса к API
    Метод Параметры Возвращаемое значение Описание
    action intentName: string | null, isCommand?: boolean void Обработка команды пользователя
    run - void Запуск обработки запроса

    Компонент для работы с кнопками интерфейса.

    Метод Параметры Возвращаемое значение Описание
    addBtn text: string, url?: string, payload?: any Buttons Добавление кнопки
    addLink text: string, url?: string, payload?: any Buttons Добавление кнопки-ссылки
    clear - void Очистка всех кнопок

    Компонент для работы с карточками и галереями.

    Метод Параметры Возвращаемое значение Описание
    addImage imageToken: string, title?: string, description?: string Card Добавление изображения
    setTitle text: string Card Добавление заголовка

    Компонент для работы со звуками.

    Метод Параметры Возвращаемое значение Описание
    addSound soundToken: string Sound Добавление звука

    Конфигурация приложения.

    interface IAppConfig {
    error_log?: string; // Путь к директории логов
    json?: string; // Путь к директории JSON
    db?: IAppDB; // Конфигурация базы данных
    isLocalStorage?: boolean; // Использование локального хранилища
    }

    Параметры приложения.

    interface IAppParam {
    welcome_text?: string | string[]; // Текст приветствия
    help_text?: string | string[]; // Текст помощи
    intents?: IAppIntent[] | null; // Массив интентов
    }

    Интерфейс для хранения пользовательских данных.

    interface IUserData {
    oldIntentName?: string; // Название предыдущего интента
    [key: string]: unknown; // Дополнительные данные
    }
    const WELCOME_INTENT_NAME = 'welcome'; // Интент приветствия
    const HELP_INTENT_NAME = 'help'; // Интент помощи
    import { BotController, WELCOME_INTENT_NAME } from 'umbot';

    class MyController extends BotController {
    public action(intentName: string | null): void {
    switch (intentName) {
    case WELCOME_INTENT_NAME:
    this.text = 'Привет! Чем могу помочь?';
    this.buttons.addBtn('Помощь').addBtn('О приложении');
    break;

    case 'about':
    this.text = 'Это пример бота на umbot';
    this.card.setTitle('О приложении').addImage('image_token');
    break;

    default:
    this.text = 'Извините, я вас не понял';
    break;
    }
    }
    }
    import { Bot } from 'umbot';

    const bot = new Bot();

    // Добавление простой команды
    bot.addCommand('greeting', ['привет', 'здравствуй']);

    // Добавление команды с колбэком
    bot.addCommand(
    'numbers',
    ['\\b\\d{3}\\b'],
    (userCommand, botController) => {
    if (botController) {
    botController.text = `Вы ввели число: ${userCommand}`;
    }
    },
    true,
    );
    interface GameData extends IUserData {
    score: number;
    level: number;
    example?: string;
    result?: number | string;
    isGame?: boolean;
    }

    class GameController extends BotController<GameData> {
    public action(intentName: string | null): void {
    // Инициализация данных при первом запуске
    if (!this.userData.score) {
    this.userData = {
    score: 0,
    level: 1,
    };
    }

    // Обработка команд
    switch (intentName) {
    case 'addScore':
    this.userData.score += 10;
    this.text = `Ваш счет: ${this.userData.score}`;
    break;
    }
    }
    }
    class ButtonController extends BotController {
    public action(intentName: string | null): void {
    switch (intentName) {
    case 'showButtons':
    // Добавление кнопок
    this.buttons.addBtn('Помощь').addBtn('Назад').addBtn('Выход');
    this.text = 'Выберите действие:';
    break;
    }
    }
    }
    class CardController extends BotController {
    public action(intentName: string | null): void {
    switch (intentName) {
    case 'showCard':
    // Создание карточки
    this.card
    .setTitle('Заголовок карточки')
    .addImage('image_token', 'Описание изображения');
    this.text = 'Вот ваша карточка:';
    break;
    }
    }
    }
    class NluController extends BotController {
    public action(intentName: string | null): void {
    // Получение интента из NLU
    const nluIntent = this.nlu.getIntent();
    if (nluIntent) {
    this.text = `Распознанный интент: ${nluIntent}`;
    } else {
    this.text = 'Не удалось распознать интент';
    }
    }
    }
    class AuthController extends BotController {
    public action(intentName: string | null): void {
    // Проверка авторизации
    if (this.isAuth) {
    this.text = 'Вы авторизованы';
    this.userToken = this.userToken || 'default_token';
    } else {
    this.text = 'Требуется авторизация';
    this.isAuth = true;
    }
    }
    }
    class RatingController extends BotController {
    public action(intentName: string | null): void {
    // Проверка оценки
    if (this.isSendRating) {
    this.text = 'Спасибо за оценку!';
    this.isSendRating = false;
    } else {
    this.text = 'Пожалуйста, оцените наш сервис';
    this.isSendRating = true;
    }
    }
    }