Команды
Метод command в GramIO позволяет создавать обработчики для определенных команд бота. Команды - это определенные слова или фразы, которые обычно начинаются с /
и используются для вызова действий или ответов от бота.
Приложения Telegram будут:
- Выделять команды в сообщениях. Когда пользователь нажимает на выделенную команду, эта команда сразу же отправляется снова.
- Предлагать список поддерживаемых команд с описаниями, когда пользователь вводит
/
(для этого вам нужно предоставить список команд @BotFather или через соответствующий метод API). Выбор команды из списка сразу отправляет её. - Показывать кнопку меню, содержащую все или некоторые команды бота (которые вы устанавливаете через @BotFather).
Команды всегда должны начинаться с символа /
и содержать до 32 символов. Они могут использовать латинские буквы, цифры и подчеркивания, хотя для более чистого вида рекомендуется использовать простой текст в нижнем регистре.
IMPORTANT
Команда также может быть вызвана с использованием полной команды с именем пользователя бота, например, /start@name_bot
.
Основное использование
Регистрация простой команды
Вы можете использовать метод command
, чтобы ваш бот отвечал на определенные команды. Вот простой пример:
bot.command("start", (context) => {
return context.send(`Привет!`);
});
IMPORTANT
Вам не нужно включать /
при указании имени команды. Если вы включите его, вы получите ошибку
.
В этом примере бот прослушивает команду /start
. Когда команда получена, бот отвечает простым сообщением "Привет!".
Пример с аргументами команды
Вот пример, демонстрирующий, как использовать аргументы с командами:
bot.command("start", async (context) => {
return context.send(
`Вы ввели команду /start с аргументами: ${context.args}`
);
});
В этом сценарии, если пользователь отправляет /start arg1 arg2
, бот ответит Вы ввели команду /start с аргументами: arg1 arg2
.
Как работает command
Распознавание команды: Бот проверяет сообщение на наличие команды (например,
/start
). Команды обычно обозначаются сущностьюbot_command
в сообщениях Telegram.Сопоставление команды: Бот сравнивает обнаруженную команду с командой, которую вы указали в методе
command
.Обработка команд с именем пользователя бота: Команда также распознается, если она включает имя пользователя бота, например,
/start@name_bot
.Аргументы команды: Если после команды есть дополнительные аргументы (например,
/start arg1 arg2
), они передаются вcontext.args
для дальнейшей обработки.