27
Апр
2021

Динамическая inline клавиатура в telegram на Python

Как создать клавиатуру из списка? Список формируется из SQL запроса. Например:

list_of_animals = ['cat','dog','mouse']

Ниже привел пример статической клавиатуры.

kb = types.InlineKeyboardMarkup()
kb_dog = types.InlineKeyboardButton(text='Собаку', callback_data='dog')
kb_cat = types.InlineKeyboardButton(text='Кошку', callback_data='cat')
kb_mouse = types.InlineKeyboardButton(text='Мышь', callback_data='mouse')
kb.add(kb_dog, kb_cat, kb_mouse)

@dp.message_handler(commands=['start'])
async def start(message):
    await bot.send_message(message.chat.id, 'Привет', reply_markup=kb)


@dp.callback_query_handler(lambda call: True)
async def callback_inline(call):
    if call.data == 'dog':
        await bot.send_message(call.message.chat.id, 'Собаку так собаку')

    elif call.data == 'cat':
        await bot.send_message(call.message.chat.id, 'Котиков все любят')

    elif call.data == 'mouse':
        await bot.send_message(call.message.chat.id, 'Серьёзно, мышь?')

Источник: https://ru.stackoverflow.com/questions/1275642/%D0%94%D0%B8%D0%BD%D0%B0%D0%BC%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%B0%D1%8F-inline-%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0-%D0%B2-telegram-%D0%BD%D0%B0-python

Тебе может это понравится...

Добавить комментарий