Для управления командами в Telegram-боте с использованием библиотеки `pyTelegramBotAPI` (известной как `telebot`), вы можете создать кнопки и настроить обработку событий нажатий этих кнопок. Это позволяет вам организовать меню и переходы между различными меню.
Вот пример, который реализует открытие меню с помощью кнопок и навигацию между разными меню:
```python
import telebot
from telebot import types
# Создаем бота с вашим токеном
API_TOKEN = 'YOUR_API_TOKEN'
bot = telebot.TeleBot(API_TOKEN)
# Функция для создания главного меню
def main_menu():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn1 = types.KeyboardButton('Меню 1')
btn2 = types.KeyboardButton('Меню 2')
markup.add(btn1, btn2)
return markup
# Функция для создания меню 1
def menu_1():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_back = types.KeyboardButton('Назад в главное меню')
markup.add(btn_back)
return markup
# Функция для создания меню 2
def menu_2():
markup = types.ReplyKeyboardMarkup(resize_keyboard=True)
btn_back = types.KeyboardButton('Назад в главное меню')
markup.add(btn_back)
return markup
# Обрабатываем команду /start
@bot.message_handler(commands=['start'])
def send_welcome(message):
bot.send_message(message.chat.id, "Добро пожаловать!", reply_markup=main_menu())
# Обрабатываем нажатия кнопок
@bot.message_handler(func=lambda message: True)
def handle_buttons(message):
if message.text == 'Меню 1':
bot.send_message(message.chat.id, "Вы в меню 1", reply_markup=menu_1())
elif message.text == 'Меню 2':
bot.send_message(message.chat.id, "Вы в меню 2", reply_markup=menu_2())
elif message.text == 'Назад в главное меню':
bot.send_message(message.chat.id, "Вы вернулись в главное меню", reply_markup=main_menu())
# Запускаем бота
bot.polling(none_stop=True)
```
### Объяснение кода:
1. **Импорт библиотек**: Импортируем необходимые модули. Убедитесь, что библиотека `pyTelegramBotAPI` установлена.
2. **Создание бота**: Инициализируем бота с вашим токеном.
3. **Создание меню**: Мы создали функции для главного меню и для каждого подменю. Каждое меню включает кнопки, которые отправляют пользователей обратно в главное меню.
4. **Обработка команды `/start`**: Когда пользователь запускает команду `/start`, бот приветствует пользователя и отображает главное меню.
5. **Обработка нажатия кнопок**: Используем один обработчик для всех кнопок:
- Если нажата кнопка "Меню 1", бот отправляет сообщение, что пользователь в меню 1 и отображает кнопки для этого меню.
- Если нажата кнопка "Меню 2", бот отправляет сообщение о переходе в меню 2.
- Если пользователь нажимает "Назад в главное меню", бот показывает главное меню.
6. **Запуск бота**: Используем `bot.polling()` для запуска бота и обработки сообщений.
С помощью такого подхода вы можете легко добавлять новые меню и кнопки, а также настраивать логику навигации между ними.