gpt4 book ai didi

python - python电报机器人中的回调查询处理程序问题

转载 作者:行者123 更新时间:2023-12-03 17:35:20 25 4
gpt4 key购买 nike

在我的代码中,我遇到了 callbackquery 的问题处理程序,当我被击中时 /start命令 下一个 按钮出现,当我点击该按钮时,它会给我回复 您好 ,直到这个输出是正确的。然后当我点击另一个命令时 /help然后 帮助 按钮出现,当我点击 帮助 按钮然后它给了我同样的答复下一个按钮是 您好 .

结论:有没有办法杀老callbackquery处理程序。我找到的方法是返回 Conversationhandler.END来自 callbackquery处理程序函数,但它限制了我的功能,但没有找到预期的输出。

这是我的代码:

 from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, ConversationHandler

TELEGRAM_HTTP_API_TOKEN = 'token'

FIRST, SECOND, HELP = range(3)

def start(bot, update):
keyboard = [
[InlineKeyboardButton(u"Next", callback_data=str(FIRST))]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text(
u"Start handler, Press next",
reply_markup=reply_markup
)
return FIRST

def first(bot, update):
query = update.callback_query
#reply_markup = InlineKeyboardMarkup(keyboard)
bot.send_message(chat_id=query.message.chat_id,
text='hi')

def help(bot,update):
keyboard = [
[InlineKeyboardButton(u"HELP", callback_data=str(HELP))]
]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text(
u"Help handler, Press button",
reply_markup=reply_markup
)

return HELP

def myhelp(bot,update):
query = update.callback_query
bot.send_message(chat_id=query.message.chat_id,
text='help')

updater = Updater(TELEGRAM_HTTP_API_TOKEN)

conv_handler = ConversationHandler(
entry_points=[CommandHandler('start', start)],
states={
FIRST: [CallbackQueryHandler(first)]
},
fallbacks=[CommandHandler('start', start)]
)
conv_handler1=ConversationHandler(
entry_points=[CommandHandler('help',help)],
states={
HELP: [CallbackQueryHandler(myhelp)]
},
fallbacks=[CommandHandler('help',help)]
)

updater.dispatcher.add_handler(conv_handler)
updater.dispatcher.add_handler(conv_handler1)

updater.start_polling()

updater.idle()

This is code screenshot output for more detail

欢迎任何形式的帮助。

最佳答案

您需要make your bot persistent (所以状态不要迷路),add error handler (要知道是否失败)和回退路由(如果没有路由匹配)。
在这种情况下,您将知道出了什么问题以及出在哪里。

关于python - python电报机器人中的回调查询处理程序问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48766265/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com