не отображаются кнопки меню

Подскажите почему могут не отображатся кнопки меню в боте

import asyncio
from aiogram import Bot, Dispatcher, types
from aiogram.fsm.storage.memory import MemoryStorage
from aiogram.types import ReplyKeyboardMarkup, KeyboardButton
from aiogram.filters import Command
from aiogram import F
import logging

logging.basicConfig(level=logging.INFO)

DOWNLOAD_PATH = 'C:/bot/тест.txt'

# Токен бота
token = "1234"
bot = Bot(token=token)
dp = Dispatcher(storage=MemoryStorage())

# Обработчик команды /start и /menu
@dp.message(Command(commands=['start', 'menu']))
async def start_command(message: types.Message):
    logging.info(f"Received command: {message.text}")

   keyboard = ReplyKeyboardMarkup(resize_keyboard=True)
   keyboard.add(KeyboardButton(text="Ввести данные"))
   keyboard.add(KeyboardButton(text="Заплатить по договору"))

await message.reply('Введите номер договора:', reply_markup=keyboard)
logging.info("Sent reply with keyboard")

# Обработчик текстовых сообщений
@dp.message(F.text)
async def handle_text(message: types.Message):
logging.info(f"Received text message: {message.text}")

found = False
found_results = []
with open(DOWNLOAD_PATH, 'r', encoding='utf-8-sig') as file:
    for line in file:
        text = line.strip()
        substrings = text.split(';')
        first_element = substrings[0].lower()  
        if message.text.lower().replace(" ", "") == first_element:  
            found = True
            found_results.append(f'По номеру договора: {message.text},Сумма: substrings[2]')
if found_results:
    message_to_send = '\n'.join(found_results)
    await message.reply(message_to_send)
else:
    await message.reply(f'Номер договора: {message.text}, не найден')

# Запуск бота
async def main():
    logging.info("Starting bot")
    await dp.start_polling(bot)
    logging.info("Bot stopped")

if __name__ == '__main__':
   `введите сюда код` asyncio.run(main())

Ответы (1 шт):

Автор решения: Dmitri Galkin

Исправленный вариант aiogram==3.7.0

@dp.message(Command(commands=['start', 'menu']))
async def start_command(message: types.Message):
    logging.info(f"Received command: {message.text}")

    keyboard = ReplyKeyboardMarkup(
        keyboard=[
            [KeyboardButton(text="Ввести данные")],
            [KeyboardButton(text="Заплатить по договору")]
        ],
        resize_keyboard=True
    )
    
    # ПРИМЕР КАК ДОБАВИТЬ КНОПКУ
    keyboard.keyboard.append([KeyboardButton(text="Проверить баланс")])
    await message.reply('Введите номер договора:', reply_markup=keyboard)
    logging.info("Sent reply with keyboard")
→ Ссылка