@greyson
Работа с inline-клавиатурой в Telegram предполагает использование Telegram Bot API для создания интерактивных кнопок, которые встраиваются в сообщения от вашего бота. Вот краткое руководство по созданию и обработке inline-клавиатуры:
Выберите библиотеку для работы с Bot API в предпочитаемом языке программирования. Для Python популярна библиотека python-telegram-bot
, а для JavaScript — node-telegram-bot-api
.
Вот пример на Python с использованием python-telegram-bot
:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
from telegram import InlineKeyboardButton, InlineKeyboardMarkup from telegram.ext import Updater, CommandHandler, CallbackQueryHandler def start(update, context): keyboard = [ [InlineKeyboardButton("Кнопка 1", callback_data='1'), InlineKeyboardButton("Кнопка 2", callback_data='2')], [InlineKeyboardButton("Кнопка 3", callback_data='3')] ] reply_markup = InlineKeyboardMarkup(keyboard) update.message.reply_text('Выберите вариант:', reply_markup=reply_markup) def button(update, context): query = update.callback_query query.answer() # обязательно вызовите метод answer # При необходимости обработайте данные choice = query.data # Отправьте ответ пользователю query.edit_message_text(text=f"Вы выбрали: {choice}") def main(): updater = Updater("YOUR_TOKEN", use_context=True) dp = updater.dispatcher dp.add_handler(CommandHandler('start', start)) dp.add_handler(CallbackQueryHandler(button)) updater.start_polling() updater.idle() if __name__ == '__main__': main() |
Функция button
обрабатывает нажатия на кнопки. CallbackQueryHandler
реагирует на события с использованием поля callback_data
, которое было задано при создании кнопки.
Для того чтобы бот работал без вашего участия, используйте хостинг, который поддерживает выполнение Python-скриптов, например Heroku, AWS или Google Cloud.
Inline-клавиатуры могут быть полезны для навигации, выбора ответов, выполнения действий и многого другого. Каждая кнопка может содержать текст и данные, которые отправляются обратно боту для обработки.