Skip to content

Команды и кнопки ​

Описание и команды ​

Описание и команды бота хранятся в его зашифрованном профиле и приходят в приложения вместе с именем и аватаром.

http
PATCH /v1/me
{"about": "Прогноз погоды. Напишите /weather <город>."}
http
PUT /v1/me/commands
{"commands": [
  {"name": "start", "description": "Что умеет бот"},
  {"name": "weather", "description": "Прогноз для города", "args": "<город>"}
]}
  • До 100 команд. name — [a-z0-9_]{1,32}, description — до 256 символов, args (подсказка в поле ввода) — до 32.
  • about — до 512 символов.
  • {"commands": []} убирает список.

Как это выглядит в приложениях:

  • Пустой чат с ботом показывает описание, кнопку Начать (отправляет /start) и строку, что переписку видит владелец бота.
  • Кнопка / Меню слева от поля ввода или / в начале пустого поля открывает список команд; дальше он фильтруется по набранному.
  • Команда без args отправляется по нажатию; с args — вставляется в поле с серой подсказкой.
  • В группе меню показывает команды всех её ботов; команда уходит с упоминанием бота.

Команда приходит обычным событием message с текстом вида /weather Тбилиси. В группе в mentions будет упоминание бота.

Кнопки ​

Бот может прикрепить к своему сообщению до шести кнопок: до 3 рядов по 2.

http
POST /v1/chats/{chat}/messages
{
  "text": "Выкатить v1.4 в прод?",
  "buttons": [
    [{"text": "Выкатить", "data": "deploy:v1.4"}, {"text": "Отмена", "data": "cancel"}],
    [{"text": "Что нового", "url": "https://example.com/changes/v1.4"}]
  ]
}
  • text — до 64 символов.
  • У кнопки либо data (до 64 байт, возвращается боту), либо url (только https; приложение спрашивает подтверждение и показывает полный адрес).
  • Кнопки показываются только под сообщениями аккаунтов с меткой «бот».

Нажатия ​

Нажатие кнопки с data получает только бот, в чате его никто не видит:

json
{
  "id": 42, "type": "button", "chat_id": "g3a…",
  "button": {"message_id": "m9…", "from": {"id": "u7f…", "name": "Анна"},
             "data": "deploy:v1.4", "press_id": "p1…"}
}

Приложение крутит нажатую кнопку, а остальные делает неактивными до реакции бота. Если за 10 секунд реакции нет — «Бот не ответил», и кнопки снова активны. Реагировать можно как угодно, в том числе несколькими способами сразу:

  • изменить сообщение — PATCH …/messages/{msg} с новым text и/или buttons ([] — убрать). Сообщения с кнопками правятся без ограничения по времени; результат видят все в чате;
  • отправить новое сообщение, можно с reply_to;
  • ответить на нажатие всплывающей строкой, которую видит только нажавший:
http
POST /v1/presses/{press_id}/answer
{"text": "Выкатываю…"}

Ответ — до 200 символов, не позже минуты после нажатия.

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