Я создал бот-телеграмму, используя библиотеку телетонов, которая принимает ответы от пользователя, используя Разговор . Его методы get_response()
получают ответы от пользователя & wait_event()
получают ответы кнопок и находятся в том же блоке моей основной функции. Но я столкнулся с некоторой сложностью и переписал код без использования Conversation
. Но я не смог найти ни одной выделенной функции, подобной get_response()
и wait_event()
.
Из примеров в руководстве, Чтобы получить последнее сообщение, python decorator @client.on(events.NewMessage)
с его функцией-обработчиком события Вызов и операции, связанные с последним сообщением, выполняются только в этой функции обработчика событий, и она не возвращает / не передает значения в основную функцию. Как я могу получить ответ пользователя в моей основной функции?
Аналогично, чтобы получить кнопку callbackquery
, мне нужно настроить @client.on(events.CallbackQuery)
, но ответ кнопки не может быть передан моей основной функции. Как я могу получить ответ кнопки в моей основной функции?
@bot.on(events.NewMessage(incoming=True, pattern='Hi'))
async def main(event):
async with bot.conversation(SENDER) as conv:
await conv.send_message('choose', buttons=[[Button.inline('Yes'), Button.inline('No')] ])
button_press = await conv.wait_event(press_event())
await conv.send_message('<b> Want More ? </b>', parse_mode='html', buttons=[ [Button.text('Yes', resize=True,single_use=True), Button.text('No', resize=True,single_use=True)], [Button.text('More', resize=True,single_use=True)] ] )
reply=await conv.get_response()