我正在学习使用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
功能?
从Telethon v1.11开始,您需要使用Conversation.wait_event
,虽然有点难看,但是可以解决问题:
Conversation.wait_event