Для создания динамической клавиатуры в Telegram-боте на языке Python вы можете использовать библиотеку python-telegram-bot.
1. Установите библиотеку python-telegram-bot, если еще не установлена:
pip install python-telegram-bot
2. Импортируйте необходимые классы из библиотеки:
from telegram import ReplyKeyboardMarkup, KeyboardButton from telegram.ext import Updater, CommandHandler, MessageHandler, Filters
3. Создайте функцию, которая будет обрабатывать сообщения с командой /start:
def start(update, context): custom_keyboard = [['Option 1', 'Option 2'], ['Option 3', 'Option 4']] reply_markup = ReplyKeyboardMarkup(custom_keyboard) context.bot.send_message(chat_id=update.effective_chat.id, text="Choose an option:", reply_markup=reply_markup)
4. Создайте функцию, которая будет обрабатывать нажатие на кнопку на клавиатуре:
def button_click(update, context): button = update.message.text context.bot.send_message(chat_id=update.effective_chat.id, text="You clicked on: " + button)
5. В функции main создайте и запустите экземпляр Updater, и добавьте обработчики команд и сообщений:
def main(): updater = Updater(token='YOUR-BOT-TOKEN', use_context=True) dispatcher = updater.dispatcher start_handler = CommandHandler('start', start) button_click_handler = MessageHandler(Filters.text & (~Filters.command), button_click) dispatcher.add_handler(start_handler) dispatcher.add_handler(button_click_handler) updater.start_polling() updater.idle() if __name__ == '__main__': main()
В созданной функции start мы создаем специальный объект ReplyKeyboardMarkup, в котором указываем массив кнопок. Каждая кнопка представляет собой массив с названием кнопки.
В функции button_click мы получаем текст нажатой кнопки и отправляем пользователю соответствующее сообщение.
Обратите внимание, что вам необходимо заменить 'YOUR-BOT-TOKEN' на токен вашего Telegram-бота.