Задать вопрос
@mishkafrede2004

Работаю с фреймворком Vkbottle, не получается сделать callback кнопку. Что делать?

Начал работать с фреймворком vkbottle, поставил задачу создать callback кнопку. При нажатии на нее, вылазит следующая ошибка
1 validation error for MessageEvent
object -> conversation_message_id
  field required (type=value_error.missing)
Traceback (most recent call last):
  File "E:\vkbottle\main\lib\site-packages\vkbottle\dispatch\base.py", line 22, in route
    await view.handle_event(event, ctx_api, self.state_dispenser)
  File "E:\vkbottle\main\lib\site-packages\vkbottle\dispatch\views\abc\raw.py", line 46, in handle_event
    event_model = self.get_event_model(handler_basement, event)
  File "E:\vkbottle\main\lib\site-packages\vkbottle\dispatch\views\bot\raw.py", line 33, in get_event_model
    return handler_basement.dataclass(**event)
  File "pydantic\main.py", line 331, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for MessageEvent
object -> conversation_message_id
  field required (type=value_error.missing)


Код:
from vkbottle.bot import Bot, Message
from vkbottle import GroupEventType, GroupTypes, VKAPIError, Keyboard, Callback
from vkbottle.modules import json

bot = Bot(token='///')


@bot.on.message(text="start")
async def handler(message: Message):
    keyboard = (
        Keyboard()
        .add(Callback("Click", {"cmd": "click"}))
        .add(Callback("Click 2", {"cmd": "click2"}))
    )

    await message.answer("callback button", keyboard=keyboard)


@bot.on.raw_event(GroupEventType.MESSAGE_EVENT, dataclass=GroupTypes.MessageEvent)
async def message_event_handler(event: GroupTypes.MessageEvent):
    if event.object.payload["cmd"] == "click":
        await bot.api.messages.send_message_event_answer(
            event_id=event.object.event_id,
            peer_id=event.object.peer_id,
            user_id=event.object.user_id,
            event_data=json.dumps({"type": "show_snackbar", "text": "Test message"})
        )
    else:
        await bot.api.messages.send_message_event_answer(
            event_id=event.object.event_id,
            peer_id=event.object.peer_id,
            user_id=event.object.user_id,
            event_data=json.dumps({"type": "show_snackbar", "text": "Test message 2"})
        )


@bot.on.raw_event(GroupEventType.GROUP_JOIN, dataclass=GroupTypes.GroupJoin)
async def group_join_handler(event: GroupTypes.GroupJoin):
    try:
        await bot.api.messages.send(
            peer_id=event.object.user_id,
            message="Welcome to the club, buddy!",
            random_id=0
        )
    except VKAPIError[901]:
        pass


@bot.on.raw_event(GroupEventType.GROUP_LEAVE, dataclass=GroupTypes.GroupLeave)
async def group_leave_handler(event: GroupTypes.GroupLeave):
    try:
        await bot.api.messages.send(
            peer_id=event.object.user_id,
            message="So sorry...",
            random_id=0
        )
    except VKAPIError[901]:
        pass


bot.run_forever()
  • Вопрос задан
  • 1187 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы