Функция echo().
Для того, что бы сделать повторяющего за нами бота, давайте создадим функцию echo
.
Между импортами и функцией start()
создадим функцию:
from aiogram.types import Message
async def echo(message: Message):

Эхо - ответ на сообщение.
В теле функции напишем код ответа на сообщение:
await message.answer(message.text)

Переменная message
, переданная в функцию, является объектом класса Message
. Мы, используя доступный нам метод answer
, отвечаем пользователю, отправившему сообщение боту.
В качестве ответа пользователю, мы отправляем его же сообщение. Текст ответа получим из переменной message
воспользовавшись ещё одним методом text
, возвращающим текстовое представление данных.
Await.
Также, стоит упомянуть про await
.
Ключевое слово await
используется только внутри асинхронной функции и только для вызова асинхронных операций.
Оно используется с операциями, которые могут занять некоторое время.
Поскольку эти операции требуют времени на выполнение, программа может продолжить выполнение других задач в это время, а затем вернуться к исходной задаче только после завершения асинхронной операции.
Таким образом, await
в данном случае означает, что программа должна дождаться отправки сообщения, прежде чем продолжить дальнейшее выполнение кода.
Регистрация функции.
Теперь нам необходимо зарегистрировать данную функцию.
В функции start()
, после инициализации диспетчера, но до блока try-finally
, регистрируем функцию, на приём всех сообщений:
dp.message.register(echo)
Обратите внимание! При регистрации функции, мы пишем только её название, без круглых скобок!

Первый запуск.
Настало время запустить бота и проверить его работу. Запускаем файл main.py
.
Поскольку у нас не инициализирован логгер и нет оповещения о запуске, то в терминале будет пусто, однако, если мы напишем боту... То он начнёт нам отвечать!

Для остановки бота, если он запущен в PyCharm, достаточно нажать на остановку.
Если бот запущен в терминале, то для остановки необходимо выполнить сочетание клавиш CTRL+C
.
Комментарии
Оставить комментарийВойдите, чтобы оставить комментарий.
Всё остальные IDE запускают в консоли, а у PyCharm своя консоль для запущенных. Так что тут всё верно. Если запущен бот в PyCharm, то останавливаем кнопкой остановки, а если в терминале (другой IDE), то CTRL+C.
если он запущен в PyCharm(c) - лучше написать если он запущен в IDE, а то не у всех же юзеров PyCharm в качестве IDE