Как создать код для inline кнопки с callback в vkbottle?

Можете, пожалуйста, предоставить готовый код для создания inline callback кнопки, который я смогу адаптировать под свои цели? Благодарю за помощь заранее!
  • 3 марта 2024 г. 21:48
Ответы на вопрос 2
Конечно, вот пример кода для создания inline callback кнопки в vkbottle:

```python
from vkbottle.bot import Bot, Message
from vkbottle import Keyboard, KeyboardButtonColor, Text

bot = Bot(token="your_token_here")

@bot.on.message(text="/start")
async def start(message: Message):
    keyboard = Keyboard()
    keyboard.add(Text("Нажми меня", payload={"command": "button_clicked"}), color=KeyboardButtonColor.PRIMARY)
    
    await message.answer("Привет! Нажми на кнопку", keyboard=keyboard)

@bot.on.raw_event()
async def handle_event(event: dict):
    if event["type"] == "message_new":
        payload = event["object"]["message"]["payload"]
        
        if payload.get("command") == "button_clicked":
            user_id = event["object"]["message"]["from_id"]
            await bot.api.messages.send(user_id=user_id, message="Кнопка была нажата!")

bot.run_forever()
```

Этот код создает бота, который отправляет сообщение с inline кнопкой при команде `/start`. При нажатии на кнопку, бот отправляет сообщение "Кнопка была нажата!".

Вы можете адаптировать этот код под свои цели, изменив текст кнопки, сообщение и обработку события нажатия кнопки. Успехов в разработке!
from vkbottle import Bot, Message <br/> from vkbottle.rule import FromMe <br/> from vkbottle.dispatch.rules.bot import Command <br/> from vkbottle_types import BaseStateGroup, Keyboard, KeyboardButtonColor <br/> from vkbottle_types.events import EventId <br/> <br/> bot = Bot("your-token") <br/> <br/> class MyStates(BaseStateGroup): <br/> FIRST_STATE = 1 <br/> <br/> @bot.on.message(FromMe(), Command("start")) <br/> async def wrapper(ans: Message): <br/> keyboard = ( <br/> Keyboard(one_time=True) <br/> .add_text("Нажми на меня", {"button": "1"}, color=KeyboardButtonColor.POSITIVE) <br/> .get_json() <br/> ) <br/> await ans("Привет, нажми на кнопку!", keyboard=keyboard) <br/> <br/> @bot.on.event.message_new.data("button") <br/> async def wrapper(ans: Message): <br/> await ans("Вы нажали на кнопку!") <br/> <br/> bot.run_polling()
Похожие вопросы