0

에 ChosenInlineResultHandler를 사용하는 방법 내가 제대로 InlineKeyboardButton을 처리하는 방법을 이해하지 python-telegram-bot파이썬 전보 봇

사용하려고합니다.

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

인라인 단추를 사용하고 있으며 돌아 오는 쿼리는 CallbackQuery이지만 단순히 InlineQuery이 아니며 예를 들어 전보 봇 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을 확인하십시오.