Skip to content

Команды

Метод command в GramIO позволяет создавать обработчики для определенных команд бота. Команды - это определенные слова или фразы, которые обычно начинаются с / и используются для вызова действий или ответов от бота.

Приложения Telegram будут:

  • Выделять команды в сообщениях. Когда пользователь нажимает на выделенную команду, эта команда сразу же отправляется снова.
  • Предлагать список поддерживаемых команд с описаниями, когда пользователь вводит / (для этого вам нужно предоставить список команд @BotFather или через соответствующий метод API). Выбор команды из списка сразу отправляет её.
  • Показывать кнопку меню, содержащую все или некоторые команды бота (которые вы устанавливаете через @BotFather).

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

IMPORTANT

Команда также может быть вызвана с использованием полной команды с именем пользователя бота, например, /start@name_bot.

Основное использование

Регистрация простой команды

Вы можете использовать метод command, чтобы ваш бот отвечал на определенные команды. Вот простой пример:

ts
bot.command("start", (context) => {
    return context.send(`Привет!`);
});

IMPORTANT

Вам не нужно включать / при указании имени команды. Если вы включите его, вы получите ошибку.

В этом примере бот прослушивает команду /start. Когда команда получена, бот отвечает простым сообщением "Привет!".

Пример с аргументами команды

Вот пример, демонстрирующий, как использовать аргументы с командами:

ts
bot.command("start", async (context) => {
    return context.send(
        `Вы ввели команду /start с аргументами: ${context.args}`
    );
});

В этом сценарии, если пользователь отправляет /start arg1 arg2, бот ответит Вы ввели команду /start с аргументами: arg1 arg2.

Как работает command

  1. Распознавание команды: Бот проверяет сообщение на наличие команды (например, /start). Команды обычно обозначаются сущностью bot_command в сообщениях Telegram.

  2. Сопоставление команды: Бот сравнивает обнаруженную команду с командой, которую вы указали в методе command.

  3. Обработка команд с именем пользователя бота: Команда также распознается, если она включает имя пользователя бота, например, /start@name_bot.

  4. Аргументы команды: Если после команды есть дополнительные аргументы (например, /start arg1 arg2), они передаются в context.args для дальнейшей обработки.