如何解决如何在使用 InlineKeyboard Python-Telegarm-Bot 时编辑/删除消息
我在 python-telegram-bot 框架中开发了一个机器人,在最后阶段我添加了一些内联键盘按钮,用于从开始消息导航到其他消息,如帮助消息或关于消息......它工作...... . 当有人使用内嵌键盘时,它会发送新消息而不是编辑旧消息.... 所以我会收到 2 条消息 1 是用户尝试导航的原始消息和用户想要导航的新消息。 ...我希望我的机器人编辑第一条消息并发送第二条消息.....
我如何添加内联键盘:
@run_async
def help(update,context):
text = Translation.HELP_TEXT,update.effective_message.reply_text(text=text,# parse_mode=ParseMode.HTML,reply_markup=InlineKeyboardMarkup(
[[ InlineKeyboardButton('⚡Home⚡',callback_data='start_button'),InlineKeyboardButton('Donate?',callback_data='upgrade_button')
],[ InlineKeyboardButton('About?',callback_data='about_button')
]]
)
)
@run_async
def about(update,context):
text = Translation.ABOUT_TEXT,# parse_mode=ParseMode.HTML,InlineKeyboardButton('⚙ Help',callback_data='help_button')
],[ InlineKeyboardButton('Close?',callback_data='cancel_btn')
]]
)
)
我如何添加回调:
def main():
fs_utils.start_cleanup()
help_handler = CommandHandler(BotCommands.HelpCommand,help)
about_handler = CommandHandler(BotCommands.AboutCommand,about)
#Callback
#
#
#
#
start_callback = CallbackQueryHandler(start,pattern='start_button')
about_callback = CallbackQueryHandler(about,pattern='about_button')
upgrade_callback = CallbackQueryHandler(upgrade,pattern='upgrade_button')
help_callback = CallbackQueryHandler(help,pattern='help_button')
#
#Dispatcher
#
#
#
dispatcher.add_handler(about_handler)
dispatcher.add_handler(help_handler)
#callback
#
#
#
#
dispatcher.add_handler(start_callback)
dispatcher.add_handler(help_callback)
dispatcher.add_handler(about_callback)
dispatcher.add_handler(upgrade_callback)
#
#
#
#
#
updater.start_polling()
LOGGER.info("Bot Started Sucessfully!")
signal.signal(signal.SIGINT,fs_utils.exit_clean_up)
main()
解决方法
用update.callback_query.edit_text
代替edit_text
reply_text
方法将编辑发送消息的文本和reply_markup
而 update.callback_query.edit_text(text=text,# parse_mode=ParseMode.HTML,reply_markup=InlineKeyboardMarkup(
[[ InlineKeyboardButton('⚡Home⚡',callback_data='start_button'),InlineKeyboardButton('⚙ Help',callback_data='help_button')
],[ InlineKeyboardButton('Close?',callback_data='cancel_btn')
]]
)
)
发送一条新消息。
示例用法:
{{1}}
参考文档 here
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。