Как осуществить проверку сообщений пользователей с использованием Aiogram?

Почему все тексты всех условий выводятся сразу при выполнении команды "Найти группу", хотя трейсбек пуст и ошибок нет?
  • 16 октября 2023 г. 12:18
Ответы на вопрос 2
Для проверки сообщений пользователей с использованием Aiogram можно использовать хэндлеры и условные операторы. Вот пример кода:

```python
from aiogram import Bot, Dispatcher, types
from aiogram.contrib.fsm_storage.memory import MemoryStorage
from aiogram.dispatcher.filters import Command

# Создаем экземпляры классов Bot и Dispatcher
bot = Bot(token='YOUR_TOKEN')
storage = MemoryStorage()
dp = Dispatcher(bot, storage=storage)

# Создаем хэндлер для команды "start"
@dp.message_handler(Command('start'))
async def start_command(message: types.Message):
    await message.reply("Привет! Я готов проверять твои сообщения.")

# Создаем хэндлер для команды "find_group"
@dp.message_handler(Command('find_group'))
async def find_group_command(message: types.Message):
    # Проверяем текст сообщения
    if 'python' in message.text:
        await message.reply("Ты ищешь группу по Python.")
    elif 'java' in message.text:
        await message.reply("Ты ищешь группу по Java.")
    else:
        await message.reply("Я не могу определить, какую группу ты ищешь.")

# Запускаем бота
if __name__ == '__main__':
    from aiogram import executor
    executor.start_polling(dp)
```

В данном примере созданы два хэндлера: один для команды "/start" и другой для команды "/find_group". Хэндлер для команды "/find_group" проверяет текст сообщения и выводит соответствующий ответ в зависимости от найденного ключевого слова (Python, Java или другое).

Относительно вашего вопроса о выводе всех текстов всех условий, это может быть связано с неправильным использованием условных операторов или неправильным форматированием кода. Можете предоставить конкретный код, чтобы я мог помочь вам решить эту проблему?
Когда вы просите бота вызвать функцию group(), он будет реагировать только на сообщение с текстом 'Найти группу'. В этом случае переменная message.text будет содержать только текст 'Найти группу' и никакого другого текста - ни '6', ни '7'.
Похожие вопросы