Создаём телеграм-бота на python - страница 3

Шрифт
Интервал


Пример: обработка команды /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. Обработка нескольких условий