VK API: Кнопки в боте сообщества

Сценарий из mcp-everything. Актуально на 2026-10-24.

Клавиатура под полем ввода или под сообщением: «Каталог», «Мой заказ», «Связаться с оператором».

  1. Опиши клавиатуру JSON-объектом: buttons — строки кнопок, у каждой action с type = text, label и payload (по нему бот поймёт, что нажали). inline = true показывает кнопки под сообщением.
  2. Отправь сообщение с клавиатурой: POST /method/messages.send с peer_id, message, random_id и keyboard — JSON-строкой.
  3. Нажатие текстовой кнопки приходит как обычное входящее сообщение message_new — в нём есть payload кнопки.
curl https://api.vk.ru/method/messages.send \
  -H "Authorization: Bearer $VK_GROUP_TOKEN" \
  --data-urlencode 'peer_id=<peer_id>' \
  --data-urlencode "random_id=$RANDOM$RANDOM" \
  --data-urlencode 'message=Чем помочь?' \
  --data-urlencode 'keyboard={"one_time": false, "buttons": [[
      {"action": {"type": "text", "label": "Каталог", "payload": "{\"cmd\": \"catalog\"}"}, "color": "primary"},
      {"action": {"type": "text", "label": "Мой заказ", "payload": "{\"cmd\": \"order\"}"}, "color": "secondary"}
    ]]}' \
  --data-urlencode 'v=5.199'

Базовые URL

Авторизация

Тип: Bearer-токен

Ключ доступа передаётся в каждом запросе в заголовке Authorization: Bearer <КЛЮЧ_ДОСТУПА>. Тип ключа указан у каждого метода: ключ пользователя, ключ сообщества или сервисный ключ приложения.

Ответ:

curl 'https://api.vk.ru/method/users.get' \
  -H 'Authorization: Bearer <КЛЮЧ_ДОСТУПА>' \
  -F 'user_ids=743784474' \
  -F 'fields=bdate' \
  -F 'v=5.131'

Методы сценария

POST /method/messages.send — Отправка сообщения

Ключи: пользователя, сообщества.

Параметр Где Тип Обяз. Описание
v body string да Версия API
peer_id body integer нет Получатель: ID пользователя; 2000000000 + chat_id для беседы; -ID сообщества
peer_ids body array нет Несколько получателей, до 100
user_id body integer нет ID пользователя
domain body string нет Короткий адрес пользователя
random_id body integer нет Уникальный ID для защиты от повторной отправки
message body string нет Текст; обязателен, если нет attachment
attachment body string нет Вложения _ через запятую; обязательны, если нет message
reply_to body integer нет ID сообщения, на которое отвечаем
forward_messages body array нет ID пересылаемых сообщений через запятую
keyboard body string нет Клавиатура бота (JSON)
payload body string нет Полезная нагрузка
group_id body integer нет ID сообщества (с ключом сообщества)
dont_parse_links body boolean нет Не создавать сниппеты ссылок
disable_mentions body boolean нет Отключить уведомления об упоминаниях

Нюансы

Другие сценарии


Если этого недостаточно — официальная документация: https://dev.vk.com/ru/api/api-requests Вся интеграция одним документом: https://mcp-everything.ru/integrations/vk-api.md