не отображаются кнопки меню
Подскажите почему могут не отображатся кнопки меню в боте
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")