HTML Diff
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