【发布时间】:2021-03-25 19:08:14
【问题描述】:
我已经编写了一个 Python Telegram 程序,但我需要一些帮助来导航内联键盘。当用户单击其中一个自定义键盘按钮 [反馈] 时,会出现一个内联键盘:
"Message: Do you find this app useful"
[No], [Yes], [Leave Comments].
当按下[否]时,只出现一条短信“谢谢,我们希望你能留下一些cmets如何改进应用程序”,返回主菜单。
当按下 [Yes] 时,会出现第二条内嵌按钮消息,其中包含“请为这个应用投票!”哪些超链接到外部网站。
当点击[Leave Comments]时,用户需要输入保存到数据库中的cmets。
我的问题是在按下 3 个内联按钮中的任何一个时,它会导致相同的功能“insert_UserFeedback”。
我的部分代码如下。
keyboard03 = [[InlineKeyboardButton("No", callback_data='no'),
InlineKeyboardButton("Yes", callback_data='yes')],
[InlineKeyboardButton("Leave Comments", callback_data='comments')]]
reply_markup03 = InlineKeyboardMarkup(keyboard03)
update.message.reply_text('Do you find the app useful?',
reply_markup=reply_markup03)
user = update.message.from_user
return FEEDBACK
在 conv_handler states={
FEEDBACK: [MessageHandler(Filters.text,
insert_UserFeedback,
pass_user_data=True),
def insert_UserFeedback(bot, update, user_data):
user = update.message.from_user
#some codes..
sql10 = "UPDATE `subscribers` SET `feedback`='" + userFeedbackTxt + "',
`feedbackDate`='" + todaydatestamp + "' WHERE `id`=" + str(user.id) + ";"
cc.execute(sql10)
copp.commit()
copp.close()
update.message.reply_text(user.first_name + ', thank you for your feedback!')
return KEYBOARDVAL
因此,无论我选择哪个内联按钮,都会调用“insert_UserFeedback”,然后需要用户编写注释,因为程序事先并不知道选择了哪个内联按钮。
【问题讨论】: