如何在Telethon库对话中获取按钮CallbackQuery

问题描述 投票:1回答:1

我正在学习使用asyncio模块的telethon。我想在对话中使用按钮,并获取用户选择的按钮的输出。

@bot.on(events.NewMessage(incoming=True, pattern=r'start'))
async def chatbot(event):
   sender = await event.get_sender(); SENDER = sender.id
   async with bot.conversation(SENDER) as conv:
   await conv.send_message('Select a button :')
   await conv.send_message('Yes or no?', buttons=[
        Button.inline('Yes!', b'yes'),
        Button.inline('Nope', b'no')    ])

   if selected_button == 'yes' :
        # do something
   else:
       # do something

使用文档中给出的callbackquery,跳至handler(event)events.CallbackQuery()功能。但是不会返回到conv功能的chatbot

如何获取所选的按钮信息并进一步使用chatbot功能?

python python-asyncio python-telegram-bot telethon
1个回答
2
投票

从Telethon v1.11开始,您需要使用Conversation.wait_event,虽然有点难看,但是可以解决问题:

Conversation.wait_event
© www.soinside.com 2019 - 2024. All rights reserved.