umbot - v2.0.8
    Preparing search index...

    Class Bot<TUserData>

    Основной класс для работы с ботом Отвечает за инициализацию, конфигурацию и запуск бота Поддерживает различные платформы: Алиса, Маруся, Telegram, VK, Viber и др.

    Bot

    Создание простого бота:

    const bot = new Bot();
    bot.initConfig({
    intents: [{
    name: 'greeting',
    slots: ['привет', 'здравствуйте']
    }]
    });
    bot.initBotController(new MyController());

    Использование с базой данных:

    const bot = new Bot();
    bot.initConfig({
    db: {
    host: 'localhost',
    database: 'bot_db',
    user: 'user',
    pass: 'password'
    }
    });

    Создание бота для Telegram:

    const bot = new Bot(T_TELEGRAM);
    bot.initConfig({
    telegram: {
    token: 'YOUR_BOT_TOKEN'
    }
    });

    Type Parameters

    Hierarchy (View Summary)

    Index

    Constructors

    • Создает новый экземпляр бота

      Type Parameters

      Parameters

      • Optionaltype: TAppType

        Тип платформы (по умолчанию Алиса)

      • OptionalbotController: BotController<TUserData>

        Контроллер с логикой

      Returns Bot<TUserData>

      Если не удалось инициализировать бота

      // Создание бота для Telegram
      const bot = new Bot(T_TELEGRAM, new MyController());

      // Создание бота для VK
      const bot = new Bot(T_VK, new MyController());

      // Создание бота для Алисы
      const bot = new Bot(T_ALISA, new MyController());

    Properties

    _serverInst: undefined | Server<typeof IncomingMessage, typeof ServerResponse>

    Экземпляр HTTP-сервера

    _content: TBotContent = null

    Полученный запрос от пользователя Может быть JSON-строкой, текстом или null

    _botController: BotController<TUserData>

    Контроллер с бизнес-логикой приложения Обрабатывает команды и формирует ответы

    BotController

    _auth: TBotAuth

    Авторизационный токен пользователя Используется для авторизованных запросов (например, в Алисе)

    Methods

    • Инициализирует тип бота через GET-параметры Если в URL присутствует параметр type с корректным значением, устанавливает соответствующий тип платформы

      Returns boolean

      true если инициализация прошла успешно

      // URL: https://bot.example.com?type=telegram
      if (bot.initTypeInGet()) {
      console.log('Тип бота успешно инициализирован для Telegram');
      }

      // URL: https://bot.example.com?type=vk
      if (bot.initTypeInGet()) {
      console.log('Тип бота успешно инициализирован для VK');
      }
    • Инициализирует конфигурацию приложения Устанавливает настройки бота, включая интенты, базу данных и другие параметры

      Parameters

      • config: IAppConfig

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

      Returns void

      // Базовая конфигурация
      bot.initConfig({
      intents: [{
      name: 'help',
      slots: ['помощь', 'справка']
      }],
      isLocalStorage: true
      });

      // Конфигурация с базой данных
      bot.initConfig({
      db: {
      host: 'localhost',
      database: 'bot_db',
      user: 'user',
      pass: 'password'
      }
      });

      // Конфигурация с Telegram
      bot.initConfig({
      telegram: {
      token: 'YOUR_BOT_TOKEN'
      }
      });

      Важно! Чувствительные данные рекомендуется сохранять в .env файл, передав путь к нему:

      bot.initConfig({
      env: './.env', // путь до файла
      });
    • Инициализирует параметры приложения Устанавливает дополнительные параметры для работы бота

      Parameters

      • params: IAppParam

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

      Returns void

      // Включение режима отладки
      bot.initParams({
      isDebug: true,
      isSaveLog: true,
      logPath: './logs'
      });

      Важно! Чувствительные данные рекомендуется сохранять в .env файл, передав путь к нему:

      bot.initConfig({
      env: './.env', // путь до файла
      });
    • Инициализирует контроллер с бизнес-логикой бота Устанавливает контроллер, который будет обрабатывать команды и формировать ответы

      Parameters

      Returns void

      class MyController extends BotController {
      public action(intentName: string): void {
      switch (intentName) {
      case 'greeting':
      this.text = 'Привет!';
      break;
      case 'help':
      this.text = 'Чем могу помочь?';
      break;
      }
      }
      }

      bot.initBotController(new MyController());
    • Protected

      Определяет тип платформы и возвращает соответствующий класс для обработки

      Parameters

      • OptionaluserBotClass: null | TemplateTypeModel = null

        Пользовательский класс бота

      Returns IBotBotClassAndType

      Объект с типом платформы и классом обработчика

      Если не удалось определить тип приложения

      Метод определяет тип платформы на основе mmApp.appType и возвращает соответствующий класс:

      • T_ALISA → Alisa
      • T_VK → Vk
      • T_TELEGRAM → Telegram
      • T_VIBER → Viber
      • T_MARUSIA → Marusia
      • T_SMARTAPP → SmartApp
      • T_USER_APP → Пользовательский класс
    • Устанавливает контент запроса Используется для передачи данных от пользователя в бота

      Parameters

      Returns void

      // Установка текстового сообщения
      bot.setContent('Привет!');

      // Установка JSON-данных
      bot.setContent({
      request: {
      command: 'привет',
      original_utterance: 'Привет, бот!'
      }
      });
    • Запускает обработку запроса Выполняет основную логику бота и возвращает результат

      Parameters

      • OptionaluserBotClass: null | TemplateTypeModel = null

        Пользовательский класс бота

      Returns Promise<TRunResult>

      Результат выполнения бота

      // Обработка запроса
      const result = await bot.run();
      console.log(result);

      // Обработка с пользовательским классом
      const result = await bot.run(new MyBotClass());
    • Запускает HTTP-сервер для обработки запросов. Создает сервер на указанном хосте и порту

      Parameters

      • hostname: string = 'localhost'

        Имя хоста

      • port: number = 3000

        Порт

      • OptionaluserBotClass: null | TemplateTypeModel = null

        Пользовательский класс бота

      Returns Server

      // Запуск сервера на localhost:3000
      bot.start('localhost', 3000);

      // Запуск с пользовательским классом
      bot.start('localhost', 3000, new MyBotClass());
    • Закрывает HTTP-сервер. Освобождает ресурсы и завершает работу сервера.

      Returns void

      // Закрытие сервера
      bot.close();