Пример: обработка команды /start
Добавьте в ваш bot.py следующий код:
python
from aiogram import Bot, Dispatcher, types
from aiogram.utils import executor
API_TOKEN = 'ВАШ_ТОКЕН_ЗДЕСЬ'
bot = Bot(token=API_TOKEN)
dp = Dispatcher(bot)
@dp.message_handler(commands=['start'])
async def send_welcome(message: types.Message):
await message.reply("Привет! Я твой первый бот на aiogram.")
@dp.message_handler(commands=['help'])
async def send_help(message: types.Message):
await message.reply("Вот что я умею:\n/start – начать\n/help – помощь\nНапиши мне что-нибудь, и я повторю это!")
@dp.message_handler()
async def echo_message(message: types.Message):
await message.answer(message.text)
if __name__ == '__main__':
executor.start_polling(dp, skip_updates=True)
Теперь бот будет отвечать на команды /start и /help специальными сообщениями, а на всё остальное – повторять текст.
4.2. Фильтры сообщений
Aiogram позволяет задавать фильтры для хэндлеров – это условия, при которых хэндлер будет срабатывать.
Пример: фильтр по типу сообщения
python
@dp.message_handler(content_types=['photo'])
async def handle_photo(message: types.Message):
await message.reply("Спасибо за фото!")
@dp.message_handler(lambda message: 'привет' in message.text.lower())
async def handle_hello(message: types.Message):
await message.reply("И тебе привет!")
Первый хэндлер сработает, если пользователь отправит фото.
Второй – если в тексте сообщения есть слово "привет".
4.3. Обработка нескольких условий