0 added
0 removed
Original
2026-01-01
Modified
2026-03-10
1
<ul><li><a>Предварительная подготовка</a><ul><li><a>О библиотеках</a></li>
1
<ul><li><a>Предварительная подготовка</a><ul><li><a>О библиотеках</a></li>
2
</ul></li>
2
</ul></li>
3
<li><a>Создание бота</a><ul><li><a>Установка языка</a></li>
3
<li><a>Создание бота</a><ul><li><a>Установка языка</a></li>
4
<li><a>Виртуальное окружение</a></li>
4
<li><a>Виртуальное окружение</a></li>
5
<li><a>Сохранение токена</a></li>
5
<li><a>Сохранение токена</a></li>
6
<li><a>Установка библиотек</a></li>
6
<li><a>Установка библиотек</a></li>
7
<li><a>Программирование бота</a><ul><li><a>Получение сообщений от сервера</a></li>
7
<li><a>Программирование бота</a><ul><li><a>Получение сообщений от сервера</a></li>
8
</ul></li>
8
</ul></li>
9
<li><a>Запуск и проверка</a></li>
9
<li><a>Запуск и проверка</a></li>
10
</ul></li>
10
</ul></li>
11
</ul><p>Python - перспективный и относительно простой язык программирования. Он поддерживает строгую динамическую типизацию. Относится к языкам высокого уровня и общего назначения. Может применяться как самостоятельный инструмент разработки проектов, так и в качестве средства обеспечения дополнительной функциональности. Изучается новичками и более опытными разработчиками. В его основе заложен ABC, благодаря которому исходный код получится читабельным и компактным. </p>
11
</ul><p>Python - перспективный и относительно простой язык программирования. Он поддерживает строгую динамическую типизацию. Относится к языкам высокого уровня и общего назначения. Может применяться как самостоятельный инструмент разработки проектов, так и в качестве средства обеспечения дополнительной функциональности. Изучается новичками и более опытными разработчиками. В его основе заложен ABC, благодаря которому исходный код получится читабельным и компактным. </p>
12
<p>Питон используется для того, чтобы создавать небольшие утилиты и даже игры. Пример - можно написать бот на Python для Телеграм. Далее предстоит познакомиться с этим процессом поближе. В конце каждый научится создавать bot message для Телеграмм. Это простой алгоритм, который повторяет фразы за пользователем. Такое программное обеспечение называется echo bot message.</p>
12
<p>Питон используется для того, чтобы создавать небольшие утилиты и даже игры. Пример - можно написать бот на Python для Телеграм. Далее предстоит познакомиться с этим процессом поближе. В конце каждый научится создавать bot message для Телеграмм. Это простой алгоритм, который повторяет фразы за пользователем. Такое программное обеспечение называется echo bot message.</p>
13
<h2>Предварительная подготовка</h2>
13
<h2>Предварительная подготовка</h2>
14
<p>Bot в Телеграмм - это небольшая мини-программа внутри мессенджера. Она управляется текстовыми командами в чате по принципу "Вопрос-ответ". Используется для различных целей - от рассылки рекламы до информирования о событиях, погоде или иных операциях. С 2015 года в Telegram каждый может написать собственный бот.</p>
14
<p>Bot в Телеграмм - это небольшая мини-программа внутри мессенджера. Она управляется текстовыми командами в чате по принципу "Вопрос-ответ". Используется для различных целей - от рассылки рекламы до информирования о событиях, погоде или иных операциях. С 2015 года в Telegram каждый может написать собственный бот.</p>
15
<p>Telegram-боты на Python условно делятся на несколько категорий:</p>
15
<p>Telegram-боты на Python условно делятся на несколько категорий:</p>
16
<ul><li>поисковые;</li>
16
<ul><li>поисковые;</li>
17
<li>помощники-информаторы (бухгалтерия, штрафы, налоги, напоминания);</li>
17
<li>помощники-информаторы (бухгалтерия, штрафы, налоги, напоминания);</li>
18
<li>сервисы (словари, конвертеры, переводчики);</li>
18
<li>сервисы (словари, конвертеры, переводчики);</li>
19
<li>развлекательные (симуляторы, гадания, мемы и анекдоты).</li>
19
<li>развлекательные (симуляторы, гадания, мемы и анекдоты).</li>
20
</ul><p>Далее будет представлен пример bot message, который дублирует сообщения пользователя - эхо-бот. Он отлично подойдет для обучения написания ботов с нуля.</p>
20
</ul><p>Далее будет представлен пример bot message, который дублирует сообщения пользователя - эхо-бот. Он отлично подойдет для обучения написания ботов с нуля.</p>
21
<p>Чтобы сделать собственный telebot в Telegram, потребуется подготовить:</p>
21
<p>Чтобы сделать собственный telebot в Telegram, потребуется подготовить:</p>
22
<ol><li>Ноутбук или компьютер.</li>
22
<ol><li>Ноутбук или компьютер.</li>
23
<li>Python 3 (скачать и установить).</li>
23
<li>Python 3 (скачать и установить).</li>
24
<li>Любой редактор кода.</li>
24
<li>Любой редактор кода.</li>
25
<li>Подключение к Интернету.</li>
25
<li>Подключение к Интернету.</li>
26
<li>Несколько библиотек (library) для bot message (Aiogram, telebot).</li>
26
<li>Несколько библиотек (library) для bot message (Aiogram, telebot).</li>
27
</ol><p>Создать первый bot для Телеграма - это не так сложно. С этой задачей сможет справиться даже тот, кто раньше не имел никакого опыта в разработке программного обеспечения.</p>
27
</ol><p>Создать первый bot для Телеграма - это не так сложно. С этой задачей сможет справиться даже тот, кто раньше не имел никакого опыта в разработке программного обеспечения.</p>
28
<h3>О библиотеках</h3>
28
<h3>О библиотеках</h3>
29
<p>Телеграм-боты создают при помощи специальных модулей - библиотек. У Питона очень много подобных инструментов. Все они различаются по функциональности и популярности, а также степени поддержки. Вот наиболее популярные библиотеки:</p>
29
<p>Телеграм-боты создают при помощи специальных модулей - библиотек. У Питона очень много подобных инструментов. Все они различаются по функциональности и популярности, а также степени поддержки. Вот наиболее популярные библиотеки:</p>
30
<ol><li>Python telegram bot. Одна из первых библиотек для формирования bot message. Поддерживает синхронный подход к работе. При ожидании ответа от пользователя выполнение исходного кода приложения будет остановлено.</li>
30
<ol><li>Python telegram bot. Одна из первых библиотек для формирования bot message. Поддерживает синхронный подход к работе. При ожидании ответа от пользователя выполнение исходного кода приложения будет остановлено.</li>
31
<li>Aiogram. Ее рекомендуется скачать и установить всем, кого интересует создание ботов message в Телеграм. На этой библиотеке базируются многие чат-боты. Здесь поддерживается асинхронность функционирования кода. Это значит, что во время ожидания пользовательского ответа останавливать bot message нет необходимости. Отличительной чертой Aiogram является наличие бесплатной официальной документации на русском языке.</li>
31
<li>Aiogram. Ее рекомендуется скачать и установить всем, кого интересует создание ботов message в Телеграм. На этой библиотеке базируются многие чат-боты. Здесь поддерживается асинхронность функционирования кода. Это значит, что во время ожидания пользовательского ответа останавливать bot message нет необходимости. Отличительной чертой Aiogram является наличие бесплатной официальной документации на русском языке.</li>
32
<li>TeleBot. Небольшая и популярная библиотека. Она позволяет создавать небольших ботов с асинхронным или синхронным подходом - на выбор и усмотрение разработчика. Это отличный вариант для небольших проектов.</li>
32
<li>TeleBot. Небольшая и популярная библиотека. Она позволяет создавать небольших ботов с асинхронным или синхронным подходом - на выбор и усмотрение разработчика. Это отличный вариант для небольших проектов.</li>
33
</ol><p>Далее предстоит изучать процесс создания Python telebot на примере Aiogram. Это связано с тем, что соответствующая библиотека является современной и распространенной.</p>
33
</ol><p>Далее предстоит изучать процесс создания Python telebot на примере Aiogram. Это связано с тем, что соответствующая библиотека является современной и распространенной.</p>
34
<h2>Создание бота</h2>
34
<h2>Создание бота</h2>
35
<p>В Телеграмм создать бот message не слишком трудно, если действовать поэтапно. Далее предстоит разобраться с формированием эхо-bot’а. Он будет отвечать на пользовательские сообщения его же словами.</p>
35
<p>В Телеграмм создать бот message не слишком трудно, если действовать поэтапно. Далее предстоит разобраться с формированием эхо-bot’а. Он будет отвечать на пользовательские сообщения его же словами.</p>
36
<p>Условно создание bot message можно представить следующей инструкцией:</p>
36
<p>Условно создание bot message можно представить следующей инструкцией:</p>
37
<ol><li>Скачать и установить Python.</li>
37
<ol><li>Скачать и установить Python.</li>
38
<li>Настроить виртуальное окружение для программирования.</li>
38
<li>Настроить виртуальное окружение для программирования.</li>
39
<li>Зарегистрировать бота в специальном Телеграмм канале.</li>
39
<li>Зарегистрировать бота в специальном Телеграмм канале.</li>
40
<li>Установить библиотеку Aiogram.</li>
40
<li>Установить библиотеку Aiogram.</li>
41
<li>Написать код эхо-бота, а затем связать его по API Telegram.</li>
41
<li>Написать код эхо-бота, а затем связать его по API Telegram.</li>
42
</ol><p>После всего этого bot message будет успешно работать. Его можно подключить к себе на канал.</p>
42
</ol><p>После всего этого bot message будет успешно работать. Его можно подключить к себе на канал.</p>
43
<h3>Установка языка</h3>
43
<h3>Установка языка</h3>
44
<p>В Linux и MacOS Python обычно уже установлен. Для его проверки используется команда в терминале: python -version. Если язык установлен, на экране появится характерное сообщение с версией. В противном случае необходимо скачать и установить Питон. Операция выполняется точно так же, как и в случае с Windows:</p>
44
<p>В Linux и MacOS Python обычно уже установлен. Для его проверки используется команда в терминале: python -version. Если язык установлен, на экране появится характерное сообщение с версией. В противном случае необходимо скачать и установить Питон. Операция выполняется точно так же, как и в случае с Windows:</p>
45
<ol><li>Открыть официальный сайт разработчика.</li>
45
<ol><li>Открыть официальный сайт разработчика.</li>
46
<li>Перейти во вкладку "Downloads" и выбрать версию языка.</li>
46
<li>Перейти во вкладку "Downloads" и выбрать версию языка.</li>
47
<li>Нажать на кнопку, отвечающую за скачивание. Подождать, пока система загрузит "Мастер установки".</li>
47
<li>Нажать на кнопку, отвечающую за скачивание. Подождать, пока система загрузит "Мастер установки".</li>
48
<li>Запустить инициализатор и, следуя подсказкам на экране, завершить процедуру.</li>
48
<li>Запустить инициализатор и, следуя подсказкам на экране, завершить процедуру.</li>
49
</ol><p>Последнюю версию Питона можно загрузить с главной страницы официального сайта разработчика.</p>
49
</ol><p>Последнюю версию Питона можно загрузить с главной страницы официального сайта разработчика.</p>
50
<h3>Виртуальное окружение</h3>
50
<h3>Виртуальное окружение</h3>
51
<p>Второй этап создания bot message - это формирование виртуального окружения. Для этого используется virtualenv. Такое название получил специальный инструмент, позволяющий изолировать проекты друг от друга в разработке, независимо устанавливая library и пакеты. Данный инструмент особо полезен, когда программист одновременно трудится над несколькими приложениями.</p>
51
<p>Второй этап создания bot message - это формирование виртуального окружения. Для этого используется virtualenv. Такое название получил специальный инструмент, позволяющий изолировать проекты друг от друга в разработке, независимо устанавливая library и пакеты. Данный инструмент особо полезен, когда программист одновременно трудится над несколькими приложениями.</p>
52
<p>Для формирования виртуального окружения используется команда:</p>
52
<p>Для формирования виртуального окружения используется команда:</p>
53
<p>Теперь можно создать директорию для message проекта. Внутри соответствующей папки будет работать виртуальное окружение:</p>
53
<p>Теперь можно создать директорию для message проекта. Внутри соответствующей папки будет работать виртуальное окружение:</p>
54
<p>mkdir telegram_bot</p>
54
<p>mkdir telegram_bot</p>
55
<p>cd telegram_bot</p>
55
<p>cd telegram_bot</p>
56
<p>Команда mkdir создаст в Python папку telegram bot. Cd позволяет перейти в соответствующую директорию. В ней сохранятся все файлы рассматриваемого проекта. </p>
56
<p>Команда mkdir создаст в Python папку telegram bot. Cd позволяет перейти в соответствующую директорию. В ней сохранятся все файлы рассматриваемого проекта. </p>
57
<p>Теперь необходимо развернуть виртуальное окружение внутри папки telegram_bot:</p>
57
<p>Теперь необходимо развернуть виртуальное окружение внутри папки telegram_bot:</p>
58
<p>virtualenv venv -p python3</p>
58
<p>virtualenv venv -p python3</p>
59
<p>Далее - активировать. Если не сделать этого, сервис в виде bot message работать не будет, как и само виртуальное окружение.</p>
59
<p>Далее - активировать. Если не сделать этого, сервис в виде bot message работать не будет, как и само виртуальное окружение.</p>
60
<p>Выше - команда активации. Теперь можно двигаться дальше и создавать самого bot message.</p>
60
<p>Выше - команда активации. Теперь можно двигаться дальше и создавать самого bot message.</p>
61
<h3>Сохранение токена</h3>
61
<h3>Сохранение токена</h3>
62
<p>Чтобы сделать message_handler (эхо-бот), его необходимо зарегистрировать и сохранить токен. Для этого потребуется:</p>
62
<p>Чтобы сделать message_handler (эхо-бот), его необходимо зарегистрировать и сохранить токен. Для этого потребуется:</p>
63
<ol><li>Открыть телеграмм и найти @BotFather.</li>
63
<ol><li>Открыть телеграмм и найти @BotFather.</li>
64
<li>Открыть соответствующий канал. Кликнуть по кнопке "Запустить".</li>
64
<li>Открыть соответствующий канал. Кликнуть по кнопке "Запустить".</li>
65
<li>Ввести в поле сообщений команду "/newbot".</li>
65
<li>Ввести в поле сообщений команду "/newbot".</li>
66
<li>Дать название боту. Пусть он называется echo_otus_bot.</li>
66
<li>Дать название боту. Пусть он называется echo_otus_bot.</li>
67
<li>В ответ пользователю придет токен. Его нужно сохранить для дальнейшего подключения к Api Telegram.</li>
67
<li>В ответ пользователю придет токен. Его нужно сохранить для дальнейшего подключения к Api Telegram.</li>
68
</ol><p>Message handler создан. Теперь остается грамотно запрограммировать его. Для этого пригодится Aoigram.</p>
68
</ol><p>Message handler создан. Теперь остается грамотно запрограммировать его. Для этого пригодится Aoigram.</p>
69
<h3>Установка библиотек</h3>
69
<h3>Установка библиотек</h3>
70
<p>Для инициализации Aiogram, чтобы создавать ботов без bot polling (бесконечно выполняющегося цикла запросов к серверам мессенджера), используется команда:</p>
70
<p>Для инициализации Aiogram, чтобы создавать ботов без bot polling (бесконечно выполняющегося цикла запросов к серверам мессенджера), используется команда:</p>
71
<p>Библиотека установится в созданное виртуальное окружение, которое связано с папкой telegram_bot. Для нового бота придется устанавливать Aiogram повторно.</p>
71
<p>Библиотека установится в созданное виртуальное окружение, которое связано с папкой telegram_bot. Для нового бота придется устанавливать Aiogram повторно.</p>
72
<h3>Программирование бота</h3>
72
<h3>Программирование бота</h3>
73
<p>Рекомендуется писать message handler в IDE Python, а не в окне терминала. Пример - Visual Studio Code. Это бесплатный редактор кода со множеством полезных функций.</p>
73
<p>Рекомендуется писать message handler в IDE Python, а не в окне терминала. Пример - Visual Studio Code. Это бесплатный редактор кода со множеством полезных функций.</p>
74
<p>Чтобы запрограммировать бота, необходимо открыть IDE и создать файл main с расширением py. Для рассматриваемого проекта этого будет достаточно. Теперь необходимо произвести импорт из Aiogram нужных классов и модулей:</p>
74
<p>Чтобы запрограммировать бота, необходимо открыть IDE и создать файл main с расширением py. Для рассматриваемого проекта этого будет достаточно. Теперь необходимо произвести импорт из Aiogram нужных классов и модулей:</p>
75
<p>from aiogram import Bot, Dispatcher, executor, types</p>
75
<p>from aiogram import Bot, Dispatcher, executor, types</p>
76
<p>Здесь:</p>
76
<p>Здесь:</p>
77
<ul><li>bot - отвечает за команды от пользователя и способы ответа на них;</li>
77
<ul><li>bot - отвечает за команды от пользователя и способы ответа на них;</li>
78
<li>dispatcher - отслеживание обновлений;</li>
78
<li>dispatcher - отслеживание обновлений;</li>
79
<li>executor - запуск бота и выполнение функций, которые были задуманы.</li>
79
<li>executor - запуск бота и выполнение функций, которые были задуманы.</li>
80
</ul><p>За счет модуля types можно использовать базовые классы для аннотирования. Пример - types. Message позволяет работать с приемом текстовых сообщений со стороны пользователя. В официальной документации можно получить больше информации о types.</p>
80
</ul><p>За счет модуля types можно использовать базовые классы для аннотирования. Пример - types. Message позволяет работать с приемом текстовых сообщений со стороны пользователя. В официальной документации можно получить больше информации о types.</p>
81
<p>Теперь необходимо импортировать токен, позволяющий связываться с API Telegram:</p>
81
<p>Теперь необходимо импортировать токен, позволяющий связываться с API Telegram:</p>
82
<p>Далее требуется инициализировать объекты bot и Dispatcher. Первому передается токен. Если не инициализировать соответствующие объекты, исходный код работать не будет:</p>
82
<p>Далее требуется инициализировать объекты bot и Dispatcher. Первому передается токен. Если не инициализировать соответствующие объекты, исходный код работать не будет:</p>
83
<p>Теперь можно настроить приветственное окно для нового пользователя. Это сообщение, которое появляется при нажатии "/start". Для этого создается message-handler. Ему прописывается функция ответа:</p>
83
<p>Теперь можно настроить приветственное окно для нового пользователя. Это сообщение, которое появляется при нажатии "/start". Для этого создается message-handler. Ему прописывается функция ответа:</p>
84
<p>Этот код работает так:</p>
84
<p>Этот код работает так:</p>
85
<ol><li>Message_handler - декоратор. Он реагирует на входящие сообщения и включает в себя функцию ответа.</li>
85
<ol><li>Message_handler - декоратор. Он реагирует на входящие сообщения и включает в себя функцию ответа.</li>
86
<li>Commands=[‘start’] - связанная с декоратором команда. Запускает вложенную в него операцию или функцию.</li>
86
<li>Commands=[‘start’] - связанная с декоратором команда. Запускает вложенную в него операцию или функцию.</li>
87
<li>Async def send welcome - отвечает за создание асинхронной функции. Она принимает в себя сообщения пользователя message, определяемое через тип Message. Сама функция может быть названа любым именем. В примере это send_welcome.</li>
87
<li>Async def send welcome - отвечает за создание асинхронной функции. Она принимает в себя сообщения пользователя message, определяемое через тип Message. Сама функция может быть названа любым именем. В примере это send_welcome.</li>
88
<li>Await message.reply - используется для определения ответа пользователя. Await применяется из-за того, что библиотека работает асинхронно.</li>
88
<li>Await message.reply - используется для определения ответа пользователя. Await применяется из-за того, что библиотека работает асинхронно.</li>
89
</ol><p>Теперь можно создать событие для обработки введенного со стороны пользователя сообщения:</p>
89
</ol><p>Теперь можно создать событие для обработки введенного со стороны пользователя сообщения:</p>
90
<p>Из-за того, что реакция со стороны bot должна быть на любое текстовое сообщение, скобки в @dp.message_handler остаются пустыми. Для ответа в Python bot api используется тот же метод message. В нем указывается, что необходимо вернуть исходный текст, принятый ранее от клиента.</p>
90
<p>Из-за того, что реакция со стороны bot должна быть на любое текстовое сообщение, скобки в @dp.message_handler остаются пустыми. Для ответа в Python bot api используется тот же метод message. В нем указывается, что необходимо вернуть исходный текст, принятый ранее от клиента.</p>
91
<h4><em>Получение сообщений от сервера</em></h4>
91
<h4><em>Получение сообщений от сервера</em></h4>
92
<p>Если не настроить получение сообщений от сервера в Телеграм, ответы со стороны программируемого мини-приложения увидеть не получится. Реализация операции возможна при помощи поллинга. Он работает элементарно - метод start_polling опрашивает сервер и проверяет на нем обновления. При их наличии происходит отправка в Telegram.</p>
92
<p>Если не настроить получение сообщений от сервера в Телеграм, ответы со стороны программируемого мини-приложения увидеть не получится. Реализация операции возможна при помощи поллинга. Он работает элементарно - метод start_polling опрашивает сервер и проверяет на нем обновления. При их наличии происходит отправка в Telegram.</p>
93
<p>Для активации поллинга используются две строки:</p>
93
<p>Для активации поллинга используются две строки:</p>
94
<p>А вот весь исходный код, с которым предстоит столкнуться:</p>
94
<p>А вот весь исходный код, с которым предстоит столкнуться:</p>
95
<p>Этот текст сохраняется в папке telegram_bot под именем main.py.</p>
95
<p>Этот текст сохраняется в папке telegram_bot под именем main.py.</p>
96
<h3>Запуск и проверка</h3>
96
<h3>Запуск и проверка</h3>
97
<p>Для того, чтобы запустить бота, потребуется терминал. После его запуска необходимо перейти в папку проекта и ввести команду:</p>
97
<p>Для того, чтобы запустить бота, потребуется терминал. После его запуска необходимо перейти в папку проекта и ввести команду:</p>
98
<p>В ответ придет сообщение о том, что обновления успешно пропущены. Можно зайти в Telegram и отыскать по имени @echo_otus_bot мини-приложение. Далее - запустить его, нажав на кнопку "Начать". При обработке команды "/start" сервис пришлет приветственное сообщение. Можно написать текст и отправить его в bot. Результат не заставит себя ждать.</p>
98
<p>В ответ придет сообщение о том, что обновления успешно пропущены. Можно зайти в Telegram и отыскать по имени @echo_otus_bot мини-приложение. Далее - запустить его, нажав на кнопку "Начать". При обработке команды "/start" сервис пришлет приветственное сообщение. Можно написать текст и отправить его в bot. Результат не заставит себя ждать.</p>
99
<p>Интересует <a>Python</a>? Добро пожаловать на курс в Otus!</p>
99
<p>Интересует <a>Python</a>? Добро пожаловать на курс в Otus!</p>
100
100