我是python-telegram bot的新手,我想在不更换旧键盘的情况下按旧的内置键盘来创建新的内置键盘。 我使用“ editMessageText”来处理回调查询。但是它仅用“ reply_markup”替换了inlinekeyboard,但是我想创建一个新的inlinekeyboard。 如何解决这个问题呢?我在堆栈溢出中搜索了很多次,但是现在仍然找不到解决方案? 请帮我解决问题!。我的形象是
def start(bot, update):
bot.sendChatAction(update.message.chat_id, action=ChatAction.TYPING)
bot.send_message(chat_id=update.message.chat_id, text=Message.CLAIM,parse_mode='html')
reply_markup = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton("Check New Model",callback_data="New Model")],
[telegram.InlineKeyboardButton("Reasses my Insurance",callback_data="Reasses")],
[telegram.InlineKeyboardButton("File a Claim",callback_data="claim")]])
bot.sendMessage(chat_id=update.message.chat_id, text="Choose the above one?", reply_markup=reply_markup)
def callback(bot,update):
query=update.callback_query
if query.data=="claim":
reply_markup = telegram.InlineKeyboardMarkup([[telegram.InlineKeyboardButton("Vehicle",callback_data="vehicle")],
[telegram.InlineKeyboardButton("Personal Accident",callback_data="accident")],
[telegram.InlineKeyboardButton("Other",callback_data="other")]])
bot.editMessageText(
message_id = update.callback_query.message.message_id,
chat_id = update.callback_query.message.chat.id,
text = "Choose the one below",
reply_markup=reply_markup
)
答案 0 :(得分:0)
根据其名称,bot.edit_message_text
用于编辑消息的文本。您需要使用bot.edit_message_reply_markup
(docs)。
如果您想在现有键盘上添加一些按钮(如果我理解您的问题),只需将其包括在编辑中即可:
reply_markup = telegram.InlineKeyboardMarkup([
[telegram.InlineKeyboardButton("Check New Model",callback_data="New Model")],
[telegram.InlineKeyboardButton("Reasses my Insurance",callback_data="Reasses")],
[telegram.InlineKeyboardButton("File a Claim",callback_data="claim")],[telegram.InlineKeyboardButton("Vehicle",callback_data="vehicle")],[telegram.InlineKeyboardButton("Personal Accident",callback_data="accident")],
[telegram.InlineKeyboardButton("Other",callback_data="other")]
])