В API ВКонтакте нет возможности отправлять клавиатуры напрямую конкретному пользователю в беседе. Однако, вы можете использовать метод messages.setActivity для показа уведомления о том, что вы начали набирать сообщение, и затем отправить клавиатуру в ответном сообщении.
Вот пример кода на Python, который отправляет клавиатуру в ответном сообщении пользователю в беседе:
import vk_api
from vk_api.longpoll import VkLongPoll, VkEventType
from vk_api.keyboard import VkKeyboard, VkKeyboardColor
import random
# Токен вашего сообщества
TOKEN = "YOUR_TOKEN_HERE"
# Инициализация VK API
vk_session = vk_api.VkApi(token=TOKEN)
longpoll = VkLongPoll(vk_session)
# Создание клавиатуры
keyboard = VkKeyboard(one_time=True)
keyboard.add_button("Кнопка 1", color=VkKeyboardColor.PRIMARY)
keyboard.add_button("Кнопка 2", color=VkKeyboardColor.SECONDARY)
keyboard.add_button("Кнопка 3", color=VkKeyboardColor.NEGATIVE)
# Обработчик новых сообщений
for event in longpoll.listen():
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
# Отправляем уведомление о том, что мы начали набирать сообщение
vk_session.method("messages.setActivity", {"peer_id": event.peer_id, "type": "typing"})
# Отправляем сообщение с клавиатурой
vk_session.method("messages.send", {"peer_id": event.peer_id, "message": "Выберите действие:", "keyboard": keyboard.get_keyboard(), "random_id": random.randint(1, 1000)})
В этом примере мы создаем клавиатуру с помощью класса VkKeyboard, затем в цикле обработки новых сообщений мы отправляем уведомление о том, что мы начали набирать сообщение с помощью метода messages.setActivity, а затем отправляем сообщение с клавиатурой с помощью метода messages.send. Клавиатура отправляется в ответном сообщении пользователю в беседе.