umbot
    Preparing search index...

    Класс для взаимодействия с API Telegram Предоставляет методы для отправки сообщений, файлов и других типов контента

    import { TelegramRequest } from 'umbot/plugins';

    // Создание экземпляра (appContext обязателен)
    const telegram = new TelegramRequest(appContext);
    telegram.initToken('your-bot-token');

    // Отправка простого сообщения
    await telegram.sendMessage(12345, 'Привет!');

    // Отправка форматированного сообщения
    await telegram.sendMessage(12345,
    '*Жирный текст* и _курсив_\n' +
    '[Ссылка](http://localhost)\n' +
    '`code` и ```pre```',
    * { parse_mode: 'MarkdownV2' }
    );

    // Отправка сообщения с клавиатурой
    const keyboard = {
    keyboard: [[
    { text: 'Кнопка 1' },
    { text: 'Кнопка 2' }
    ]],
    resize_keyboard: true,
    one_time_keyboard: true
    };

    await telegram.sendMessage(12345, 'Выберите:', {
    reply_markup: JSON.stringify(keyboard)
    });

    // Отправка файлов
    await telegram.sendPhoto(12345, 'photo.jpg', 'Описание фото');
    await telegram.sendDocument(12345, 'document.pdf');
    await telegram.sendAudio(12345, 'audio.mp3', {
    title: 'Название',
    performer: 'Исполнитель'
    });
    Index

    Constructors

    Properties

    token: string | null

    Токен доступа к Telegram API

    Methods

    • Отвечает на callback-запрос от инлайн-кнопки.

      Parameters

      • callbackQueryId: string

        ID запроса из поля callback_query.id

      • Optionaltext: string

        Текст уведомления (показывается всплывающим окном)

      • OptionalshowAlert: boolean

        Показывать как alert (true) или всплывающее уведомление (false)

      • Optionalurl: string

        URL для открытия после нажатия

      • OptionalcacheTime: number

        Время кэширования ответа (сек)

      Returns Promise<ITelegramResult | null>

      Результат ответа на callback-запрос (подтверждение) или null при ошибке

    • Отправляет результаты inline-запроса в Telegram.

      Parameters

      • inlineQueryId: string

        Идентификатор входящего inline-запроса

      • results: Record<string, unknown>[]

        Элементы, которые пользователь увидит в inline-поиске

      Returns Promise<ITelegramResult | null>

      Ответ Telegram API или null при ошибке

    • Инициализирует токен доступа к Telegram API

      Parameters

      • token: string | null

        Токен для доступа к API; допустим null — отключает заголовок Authorization

      Returns void

    • Отправляет аудиофайл

      Parameters

      • userId: TTelegramChatId

        ID чата или пользователя

      • file: string

        Путь к локальному файлу, URL или file_id ранее загруженного файла (содержимое файла не поддерживается)

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • caption: подпись к аудио
        • parse_mode: формат текста
        • duration: длительность в секундах
        • performer: исполнитель
        • title: название
        • disable_notification: отключить уведомление
        • reply_to_message_id: ID сообщения для ответа
        • reply_markup: клавиатура в JSON

      Returns Promise<ITelegramResult | null>

      Информация об отправленном аудио или null при ошибке

    • Отправляет документ

      Parameters

      • userId: TTelegramChatId

        ID чата или пользователя

      • file: string

        Путь к локальному файлу, URL или file_id ранее загруженного файла (содержимое файла не поддерживается)

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • caption: подпись к документу
        • parse_mode: формат текста
        • disable_notification: отключить уведомление
        • reply_to_message_id: ID сообщения для ответа
        • reply_markup: клавиатура в JSON

      Returns Promise<ITelegramResult | null>

      Информация об отправленном документе или null при ошибке

    • Отправляет текстовое сообщение

      Parameters

      • chatId: TTelegramChatId

        ID чата или пользователя

      • message: string

        Текст сообщения

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • parse_mode: формат текста
          • MarkdownV2: жирный, курсив, ссылка, код, pre
          • HTML: жирный, курсив, ссылка, код,
            pre
        • disable_web_page_preview: отключить предпросмотр ссылок
        • disable_notification: отключить уведомление
        • reply_to_message_id: ID сообщения для ответа
        • reply_markup: клавиатура в JSON формате
          • keyboard: обычная клавиатура
          • inline_keyboard: встроенная клавиатура
          • remove_keyboard: удалить клавиатуру
          • force_reply: форсировать ответ

      Returns Promise<ITelegramResult | null>

      Информация об отправленном сообщении или null при ошибке

      // Простое сообщение
      await telegram.sendMessage(12345, 'Привет!');

      // Форматированное сообщение
      await telegram.sendMessage(12345,
      '<b>Жирный</b> и <i>курсив</i>\n' +
      '<a href="http://localhost">Ссылка</a>\n' +
      '<code>code</code>',
      { parse_mode: 'HTML' }
      );

      // Сообщение с обычной клавиатурой
      const keyboard = {
      keyboard: [[
      { text: 'Кнопка 1' },
      { text: 'Кнопка 2' }
      ]],
      resize_keyboard: true
      };
      await telegram.sendMessage(12345, 'Выберите:', {
      reply_markup: JSON.stringify(keyboard)
      });

      // Сообщение с inline-клавиатурой
      const inlineKeyboard = {
      inline_keyboard: [[{
      text: 'Кнопка',
      callback_data: 'button_1'
      }]]
      };
      await telegram.sendMessage(12345, 'Нажмите:', {
      reply_markup: JSON.stringify(inlineKeyboard)
      });
    • Отправляет фотографию

      Parameters

      • userId: TTelegramChatId

        ID чата или пользователя

      • file: string

        Путь к локальному файлу, URL или file_id ранее загруженного файла (содержимое файла не поддерживается) Поддерживаемые форматы:

        • JPEG, JPG, PNG, GIF, WEBP
        • Максимальный размер: 10MB
        • Сумма ширины и высоты не более 10000 пикселей
      • desc: string | null = null

        Подпись к фотографии

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • caption: подпись к фото (0-1024 символа)
        • parse_mode: формат текста
        • disable_notification: отключить уведомление
        • reply_to_message_id: ID сообщения для ответа
        • reply_markup: клавиатура в JSON

      Returns Promise<ITelegramResult | null>

      Информация об отправленной фотографии или null при ошибке

    • Отправляет опрос

      Parameters

      • chatId: TTelegramChatId

        ID чата или пользователя

      • question: string

        Текст вопроса

      • options: string[]

        Массив вариантов ответов (1-12 вариантов)

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • is_anonymous: анонимный опрос (по умолчанию true)
        • type: тип опроса
          • 'regular': обычный опрос (по умолчанию)
          • 'quiz': викторина с одним правильным ответом
        • allows_multiple_answers: разрешить несколько ответов (только для regular)
        • correct_option_ids: индексы правильных ответов (0-based, только для quiz). Устаревшее correct_option_id поддерживается и автоматически приводится к массиву.
        • explanation: пояснение правильного ответа (только для quiz)
        • explanation_parse_mode: формат пояснения (HTML/Markdown)
        • open_period: время в секундах, когда опрос активен
        • close_date: дата закрытия опроса (Unix timestamp)
        • is_closed: закрыть опрос сразу

      Returns Promise<ITelegramResult | null>

      Информация об отправленном опросе или null при ошибке

      // Викторина
      await telegram.sendPoll(12345,
      'Столица России?',
      ['Санкт-Петербург', 'Москва', 'Новосибирск'],
      {
      type: 'quiz',
      correct_option_ids: [1], // Москва
      explanation: 'Москва - столица России с 1918 года',
      explanation_parse_mode: 'HTML'
      }
      );
    • Отправляет видео

      Parameters

      • userId: TTelegramChatId

        ID чата или пользователя

      • file: string

        Путь к локальному файлу, URL или file_id ранее загруженного файла (содержимое файла не поддерживается)

      • params: ITelegramParams | null = null

        Дополнительные параметры:

        • caption: подпись к видео
        • parse_mode: формат текста
        • duration: длительность в секундах
        • width: ширина
        • height: высота
        • disable_notification: отключить уведомление
        • reply_to_message_id: ID сообщения для ответа
        • reply_markup: клавиатура в JSON

      Returns Promise<ITelegramResult | null>

      Информация об отправленном видео или null при ошибке

    • Отправляет голосовое сообщение.

      По Bot API голосовое сообщение — это OGG/Opus (а также MP3/M4A); именно в OGG/Opus синтезирует речь Yandex SpeechKit. sendAudio для такого файла не подходит: он принимает только MP3/M4A (музыкальный плеер).

      Parameters

      • userId: TTelegramChatId

        ID чата или пользователя

      • file: string

        Путь к локальному файлу, URL или file_id ранее загруженного голосового

      • params: ITelegramParams | null = null

        Дополнительные параметры (caption, duration, reply_markup и т.д.)

      Returns Promise<ITelegramResult | null>

      Информация об отправленном сообщении или null при ошибке

      await telegram.sendVoice(chatId, './tts.ogg');