Для создания меню в чат-боте Telegram используются так называемые inline keyboards (встроенные клавиатуры) или reply keyboards (клавиатуры ответов). Они позволяют боту отправлять сообщения с кнопками, которые пользователь может нажимать для выполнения различных команд.
Для работы с Telegram API и создания ботов чаще всего используются различные библиотеки, например python-telegram-bot для Python, node-telegram-bot-api для Node.js и так далее. Давайте рассмотрим, как можно создать простое меню для чат-бота на Python с использованием библиотеки python-telegram-bot.
Установите библиотеку сначала, если она у вас ещё не установлена:
```bash
pip install python-telegram-bot
```
Вот пример кода, который создает простое меню бота с встроенными кнопками:
```python
from telegram import InlineKeyboardButton, InlineKeyboardMarkup, Update
from telegram.ext import Updater, CommandHandler, CallbackQueryHandler, CallbackContext
# Функция для старта диалога и отправки приветственного сообщения с меню
def start(update: Update, context: CallbackContext) -> None:
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: Update, context: CallbackContext) -> None:
query = update.callback_query
query.answer()
# Тут можно обработать разные варианты callback_data и сделать что-то в зависимости от выбранного пункта
query.edit_message_text(text="Выбран пункт: {}".format(query.data))
def main() -> None:
# Создаем Updater и передаем ему токен вашего бота.
updater = Updater("ТОКЕН_ВАШЕГО_БОТА")
# Получаем диспетчер для регистрации обработчиков
dispatcher = updater.dispatcher
# Регистрируем обработчики команд
dispatcher.add_handler(CommandHandler('start', start))
dispatcher.add_handler(CallbackQueryHandler(button))
# Начинаем поиск и обработку обновлений
updater.start_polling()
# Запускаем бота, пока не будет нажата Ctrl-C или процесс не получит SIGINT,
# SIGTERM или SIGABRT
updater.idle()
if __name__ == '__main__':
main()
```
Убедитесь, что заменили `"ТОКЕН_ВАШЕГО_БОТА"` на реальный токен вашего бота. Также в функции `button` Вы можете развернуть логику в зависимости от полученных callback данных для вызова различных функций вашего бота.
Клавиатуры ответов создаются похожим образом, но они включают кнопки, которые отображаются в поле ввода сообщения, и их использование немного отличается от встроенных клавиатур.
Помните, что для реальных ботов вам также потребуется обрабатывать и другие команды и сообщения от пользователей, а также предусмотреть обработку ошибок и прочую логику для обеспечения надежной работы вашего бота.