如何解决如何根据用户选择在CallbackQueryHandler中调用函数?
示例:
AGAIN = range(1)
TOKEN = 'token'
def start(update,context):
keyboard = [
[InlineKeyboardButton("again",callback_data='again')],[InlineKeyboardButton("stop",callback_data='stop')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text(
text="Hi!\n-----\nThat's it,again?",reply_markup=reply_markup)
return AGAIN
def again(update,context):
query = update.callback_query
query.answer()
if query.data == 'again':
start()
elif query.data == 'stop':
cancel()
def cancel(update,context):
update.message.reply_text(
'Thank You,if you want open the menu,just type /start')
return ConversationHandler.END
def main():
updater = Updater(token=TOKEN,use_context=True)
dispatcher = updater.dispatcher
conv_handler = ConversationHandler(
entry_points=[CommandHandler('start',start)],states={
AGAIN: [CallbackQueryHandler(again)]
},fallbacks=[CommandHandler('cancel',cancel)],)
dispatcher.add_handler(conv_handler)
updater.start_polling()
updater.idle()
if __name__ == '__main__':
main()
该怎么做?如果用户选择“再次”->运行start(),如果用户选择“停止”->运行cancel()。我尝试使用MessageHandler或CommandHandler添加新状态,但由于在。之后没有用户消息作为输入,因此无法正常工作。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。