В прошлом посте мы написали точку входа и запуск из неё функции start()
.
Именно написанием этой функции и займёмся.
Основная функция start().
Между импортом и точкой входа, объявим функцию:
async def start():
Не забываем про правила написания чистого кода - PEP8. Расставим по две пустых строки перед и после функции.
Как вы наверняка заметили, вместо стандартного def
, мы используем async def
.
Ключевое слово async
указывает на то, что эта функция является корутиной, то есть функцией, которая может приостанавливать свое выполнение в течение определенного времени, чтобы выполнять другие задачи.
bot = Bot.
В теле функции объявим переменную bot
и присвоим ей объект класса Bot
, необходимый для взаимодействия с API Telegram:
from aiogram import Bot
bot = Bot(token='ваш_токен')
В параметр token
передаём полученный от BotFather
токен.
Стоит отметить, такая явная передача токена боту, является не безопасной. В следующих постах мы изменим передачу токена, а когда дойдём до развёртывания бота на сервере, я расскажу как правильно передавать секреты в бота.
Dispatcher.
Далее нам необходимо создать объект класса Dispatcher
:
from aiogram import Dispatcher
dp = Dispatcher()
Dispatcher()
создает поток для обработки всех входящих запросов, проверяет тип запроса, извлекает все необходимые данные из запроса и передает их в соответствующий обработчик.
polling.
И наконец, необходимо запустить диспетчер в режиме "polling". Так называется бесконечный цикл "опроса" сервера(в нашем случае, сервера Telegram), на предмет новых сообщений или событий.
try:
await dp.start_polling(bot)
finally:
await bot.session.close()
В данном блоке используется конструкция try-finally
. Диспетчер будет работать до тех пор, пока не будет остановлен. После остановки диспетчера, будет выполнена команда закрытия сессии и выход их программы.
Полный код функции:
from aiogram import Bot, Dispatcher
async def start():
bot = Bot(token="ваш_токен")
dp = Dispatcher()
try:
await dp.start_polling(bot)
finally:
await bot.session.close()
Добавить комментарий:
Войдите чтобы добавить комментарий.
Комментарии пользователей:
Shurik1777 | 16 июля 2024 г. 13:16 |
будет выполнена команда закрытия сессии и выход их программы.
Тут подправить бы, и неплохо было бы объяснить почему нужен выход из программы?)
Реклама
Соседние посты
AIOgram3 4. Эхо-ботAIOgram3 3. Основная функция
AIOgram3 2. Точка входа
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться.
Файлы также можно получить в Telegram-боте по коду: 627598
Обсуждение
Обсудить или задать вопрос можно в комментариях к посту в Telegram
Теги
Python Гайды Telegram AIOgram Telegram-бот API AIOgram3 бот API Telegram BotFather Dispatcher PEP8 pollingСсылки
Реклама