我尝试使用python-telegram-bot
我不明白如何正确处理InlineKeyboardButton。
def start(bot, update):
currencies = [currency for currency in API().get_currencies()]
keyboard = [[InlineKeyboardButton("{}".format(c), callback_data='{}'.format(c))] for c in currencies]
reply_markup = InlineKeyboardMarkup(keyboard)
update.message.reply_text('Select the currency you want to exchange:', reply_markup=reply_markup)
updater.dispatcher.add_handler(CommandHandler('start', start))
现在,我需要在ChosenInlineResultHandler
的帮助下将选择传递给另一个函数来处理选择,但我不明白如何做到这一点。
答案 0 :(得分:0)
您正在使用内联按钮,而返回的查询只是CallbackQuery
而不是InlineQuery
,是的,Telegram Bot API的名称有点令人困惑。
您可以使用telegram.ext.CallbackQueryHandler
在按下按钮时捕获查询。
def button_callback(bot, update):
# data is the callback_data where you declared in the buttons
query = update.callback_query.data
if query == "something":
# do something here
updater.dispatcher.add_handler(CallbackQueryHandler(button_callback))
这是如何抓住按钮的最小例子。数据。您可以查看here以获取完整示例。