在用python Telegrame bot编写的Telegrame bot中,我有一些键盘按钮,当我单击其中一个按钮时,我希望显示一个警报,如下所示: alert screenshot
然而,当我点击按钮时,它什么也不起作用,我不知道出了什么问题。 谢谢大家!
下面是我的代码:
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
from telegram.ext import (
Updater,
CommandHandler,
CallbackQueryHandler,
)
token = 'XXX'
updater = Updater(token=token, use_context=True)
dispatcher = updater.dispatcher
def start(update, context):
keyboard = [
[
InlineKeyboardButton("dog", callback_data='dog'),
InlineKeyboardButton("cat", callback_data='cat'),
],
]
reply_markup = InlineKeyboardMarkup(keyboard)
context.bot.send_message(
chat_id=update.effective_chat.id,
text=f'Hello {update.message.chat.first_name}!',
reply_markup=reply_markup,
)
def buttons(update, context):
query = update.callback_query
query.answer()
if query.data == 'cat':
context.bot.answer_callback_query(callback_query_id=query.id, text='you chose cat', show_alert=True)
elif query.data == 'dog':
context.bot.answer_callback_query(callback_query_id=query.id, text='you chose dog', show_alert=True)
start_handler = CommandHandler('start', start)
dispatcher.add_handler(start_handler)
buttons_handler = CallbackQueryHandler(buttons)
dispatcher.add_handler(buttons_handler)
updater.start_polling()```
您必须删除
query.answer()
并仅在不想发送警报时发送它或者更容易阅读
我的测试代码-我必须添加
updater.idle()
以保持它运行相关问题 更多 >
编程相关推荐