AIOgram3 3. Основная функция
В этом посте, напишем основную функцию бота.
Все статьи
- 08 Август 2024 AIOgram3 19. Капча для вступающих в чат Комментарии к посту
- 13 Июнь 2024 AIOgram3 18. Подключаем оплату Telegram Stars Комментарии к посту
- 22 Май 2024 Бот-автоответчик с ChatGPT для Бизнес-аккаунта в Telegram на Aiogram 3 Комментарии к посту
- 06 Февраль 2024 AIOgram3 17. Подготовка к разворачиванию на сервере Комментарии к посту
- 30 Январь 2024 AIOgram3 16. Перевод голосовых сообщений в текст Комментарии к посту
- 07 Октябрь 2023 AIOgram3 15. Обработка события вступления или покидания чата Комментарии к посту
- 05 Октябрь 2023 AIOgram3 14. Фильтруем запрещённые слова Комментарии к посту
- 03 Октябрь 2023 AIOgram3 13. Прогноз погоды в боте - OpenWeatherMap Комментарии к посту
- 01 Октябрь 2023 AIOgram3 12. Добавление бота в чат Комментарии к посту
- 06 Сентябрь 2023 AIOgram3 11. Обновление для команды get_file Комментарии к посту
- 05 Сентябрь 2023 AIOgram3 10. Пара простых команд Комментарии к посту
- 05 Сентябрь 2023 AIOgram3 9. Команда start Комментарии к посту
- 15 Август 2023 AIOgram3 8.2 Команда отправки файла, продолжение Комментарии к посту
- 15 Август 2023 AIOgram3 8.1 Команда отправки файла Комментарии к посту
- 10 Август 2023 AIOgram3 7. Получение пути до файла по API Комментарии к посту
- 08 Август 2023 AIOgram3 6. Информирование администратора Комментарии к посту
- 08 Август 2023 AIOgram3 5.2. Создание структуры, продолжение Комментарии к посту
- 03 Август 2023 AIOgram3 5.1. Создание структуры Комментарии к посту
- 28 Июль 2023 AIOgram3 4. Эхо-бот Комментарии к посту
- 27 Июль 2023 AIOgram3 3. Основная функция Комментарии к посту
- 27 Июль 2023 AIOgram3 2. Точка входа Комментарии к посту
- 27 Июль 2023 AIOgram3 1.5. Регистрация бота Комментарии к посту
- 27 Июль 2023 AIOgram3 1. Начинаем создавать Telegram-бота Комментарии к посту
Дополнительные материалы
Для скачивания материалов необходимо войти или зарегистрироваться
Файлы также можно получить в Telegram-боте по коду: 627598
Реклама
В прошлом посте мы написали точку входа и запуск из неё функции 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
будет выполнена команда закрытия сессии и выход их программы.
Тут подправить бы, и неплохо было бы объяснить почему нужен выход из программы?)
Войдите чтобы добавить комментарий.