Команды
Метод 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для дальнейшей обработки.