2.20M
Category: programmingprogramming

Язык программирования Python. Чат-боты в Telegram на Python и Aiogram 3

1.

Урок №5
Язык программирования Python
Чат-боты в Telegram на Python и Aiogram 3

2.

Пробежимся по терминам:
• Aiogram - Библиотека реализует асинхронное
выполнение кода, что позволяет не останавливать
работу бота в ожидании ответа пользователя;

3.

Клиент и сервер
• Начнём наш урок с базовых сетевых понятий – клиент и сервер.
Telegram бот
Запрос на сайт
vk.com
Запрос
Ответ в виде
страницы vk.com
Ответ
Клиент – сторона,
которая отправляет
запросы на сервер.
• Любой Telegram бот выступает третьей стороной в
взаимоотношениях клиент-сервер и работает по принципу
polling.
Polling – это метод, при котором бот несколько раз в
секунду отправляет запрос на сервер Telegram, спрашивая
появились ли какие-то обновления (updates).
Сервер – сторона, которая
отвечает на запросы.
• Система клиент-сервер работает по следующему принципу клиент
отправляет запрос, сервер отправляет ответ, и так по кругу.
• Telegram — не исключение. Каждый пользователь отправляет два
вида запросов:
1. Отправляет сообщение другому пользователю
2. Проверяет наличие сообщений
• Если у сервера Telegram, появились какие-то обновления
(updates), то сервер сообщает от этом боту.

4.

Получаем токен
Общая схема работы
• Общая схема работы выглядит так:
• Для получения токена необходимо воспользоваться
Telegram и ботом @BotFather. Откройте мессенджер
и введите название бота в поисковой строке:
Запрос на сайт
vk.com
Запрос
Ответ в виде
страницы vk.com
Ответ
Открываем его, жмём кнопку «Запустить» и вводим
команду /newbot:
• Теперь напишем название и юзернейм для нашего бота.
В ответ придёт наш токен, который мы будем
использовать для подключения к API Telegram.
Telegram API – это набор способов и правил, по которым ваш
бот взаимодействует с серверами Telegram

5.

Структура бота на Aiogram
• Для установки aiogram3 воспользуемся менеджером пакетов
PIP. Заходим в терминал и пишем следующий текст:
Структура бота на Aiogram
pip install aiogram
Aiogram – библиотека асинхронная.
• Возвращаемся в редактор кода и создадим переменную для
токена и вписываем в переменную токен, который получили у
BotFather:
• А это значит, что запускать метод старта поллинга нужно
асинхронно, поэтому добавим библиотеку asyncio:
token = 'Наш токен!'
• И модернизируем код, исходя из принципов асинхронного
программирования:
• Из библиотеки aiogram импортируем объект Bot, который
связывает нас с API Telegram:
from aiogram import Bot
• Создадим объект класса Bot и передадим в него аргументом
токен:
bot = Bot(token=token)
• Из библиотеки aiogram импортируем ещё один объект Dispatcher,
который позволяет получать update в реальном времени:
from aiogram import Bot, Dispatcher
• Создадим объект класса Dispatcher:
dp = Dispatcher()
• Чтобы начать получение updates, запустим polling:
dp.start_polling(bot)
import asyncio
English     Русский Rules