如何从内联键盘电报中获得回调



我知道如何发送内联键按钮消息,但我想知道如何接收callbackdata当用户按下

keyboard = [
[InlineKeyboardButton("Click button 1", callback_data='callback_1')],
[InlineKeyboardButton("Click button 1", callback_data='callback_2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
message_reply_text = 'Click one of these buttons'
user_message.message.reply_text(message_reply_text, reply_markup=reply_markup)

您可以使用CallbackQueryHandler来分配函数,该函数将在单击按钮时执行。

dp.add_handler(CallbackQueryHandler(keyboard_callback))

,你可以得到

update.callback_query.data

from telegram.ext import Updater, CommandHandler, CallbackQueryHandler
from telegram import InlineKeyboardButton, InlineKeyboardMarkup
import os
TOKEN = os.getenv('TELEGRAM_TOKEN')
def start(update, context):
keyboard = [
[InlineKeyboardButton("Click button 1", callback_data='callback_1')],
[InlineKeyboardButton("Click button 1", callback_data='callback_2')]
]
reply_markup = InlineKeyboardMarkup(keyboard)
message_reply_text = 'Click one of these buttons'
update.message.reply_text(message_reply_text, reply_markup=reply_markup)
def keyboard_callback(update, context):
query = update.callback_query
#print('query:', query)

print('query.data:', query.data)
query.answer(f'selected: {query.data}')
if __name__=='__main__':
update = Updater(TOKEN, use_context=True)
dp = update.dispatcher
dp.add_handler(CommandHandler("start", start))

dp.add_handler(CallbackQueryHandler(keyboard_callback))

print('Starting ...')
update.start_polling()
update.idle()

最新更新