Страницы

Поиск по вопросам

суббота, 11 января 2020 г.

Как использовать ChosenInlineResultHandler в Python Telegram Bot

#python #python_3x #telegram_bot #telegram


Здравствуйте.

Использую 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,
но я не понимаю, как это сделать. 
    


Ответы

Ответ 1



нужно обработать InlineKeyboard или InlineQuery ? пример InlineKeyboard пример InlineQuery полностью рабочие. для InlineQuery необходимо включить Inline режим для своего бота. Инициализировать метод ChosenInlineResultHandler можно используя пример InlineQuery из официальной документации. Когда пользователь вызает Inline режим бота из любого чата, например @youtube fun бот обрабатывает ввод аргументов и получет актуальный набор данных: {'inline_query':{ 'query': u'USER_MESSAGE_TEXT', 'offset': u'', // введенный текст 'from': {'username': u'USERNAME', 'first_name': u'NAME', 'id': 000000000, 'language_code': u'en-US'}, // информация о пользователе 'id': u'1100110001010010001'}, // ID текущего Inline запроса 'update_id': 000000000} // ID текущего обновления теперь мы можем вызвать ChosenInlineResultHandler: ChosenInlineResult( result_id=update.inline_query.id, from_user=update.inline_query.from_user, query=update.inline_query) в Python следует использовать from_user вместо from. Так же, можно исользовать объект Update вызвав метод Update.de_json() передавая в него update_id и текущего бота bot. В каждом методе есть описание как правильно его вызывать.

Комментариев нет:

Отправить комментарий