Команды в Телеграм-ботах
Самый частый сценарий взаимодействия с ботом — через команды. Команды начинаются на «/» и состоят из латинских букв, цифр и подчёркиваний.
Команды подсвечиваются как ссылки: можно нажать на команду, чтобы отправить её.
Команды в группах
В группах, чтобы различать команды от разных ботов, Телеграм предлагает ставить в конце команды юзернейм бота. Например: /start@examplebot
Если нажать на команду в сообщении от бота, она отправится с добавленным юзернеймом бота.
Бот не увидит команды, на конце которых стоит юзернейм другого бота.
Подсказки команд
Разработчик бота может указать в BotFather подсказки команд с короткими описаниями. Тогда, вводя команду в чат, пользователь увидит меню автодополнения.
Если у бота включены подсказки, то в личных чатах и группах с этим ботом рядом с кнопкой «Отправить» у пользователей появляется кнопка «Меню», открывающая подсказки.
Если в подсказках команд есть /help
, в профиле бота появляется кнопка «Помощь с ботом», которая отправляет эту команду. Аналогично, если есть /settings
, то появляется кнопка «Настройки бота», а если /privacy
, то кнопка «Политика конфиденциальности».
Подсказки команд можно настраивать не только в BotFather, но и с помощью API. Таким образом бот может показывать разные меню команд для разных пользователей и групп. Также меню команд может зависеть от языка пользователя (это удобно для того, чтобы показывать описания команд на языке пользователя) и от того, является ли участник группы админом (например, команды для модерации группы).
Аргументы команд
Конечно, вы можете просить пользователя добавлять после команды какой-то текст: например, /weather London
Тем не менее в Телеграме неудобно отправлять команду с дополнительным текстом.
Обычно, если пользователь выберёт команду в автодополнении, он сразу её отправит. Чтобы дополнить команду по подсказке, не отправляя её, в десктопном приложении ему надо будет нажать tab, а в мобильных — зажать подсказку. Но, конечно, многие пользователи об этом не знают.
Телеграм рекомендует реализовывать как можно более конкретные команды, чтобы использовать их без аргументов.
Если это не помогает, можете рассмотреть другие варианты общения пользователя с ботом. Для выбора из нескольких вариантов подойдут кнопки или инлайн-режим. Если боту нужна какая-то дополнительная информация от пользователя, то он может спросить об этом отдельным сообщением.