За 6 месяцев программирование дискорд и телеграм ботов, я обучался новому, дорабатывал старое, и доводил свои проекты до конца. На моем счету завершены 4 законченных ботов, 3 из которых в телеграме. И совсем недавно, я начал обучать пару моих знакомых основами создания телеграм ботов, и после завершения их обучения, у меня появилась идея сделать для всех гайд по созданию телеграм ботов на языке программирование Python!
Сразу скажу, к этому делу нужно относится серьезно, ведь чтобы запомнить базу, нужно много практиковаться, а главное, иметь желание и свободное время. Если у вас все это есть, добро пожаловать!
Также, вы должны знать хоть какую то базу Python, по типу объявление переменной, условные операторы, классы и т.д. Об этом вы можете найти в ютубе, но вот вам рекомендую этот ролик (ТЫКНИ).
В нем упоминается создание телеграм ботов, но этот ролик вышел год назад, но нашу библиотеку, которую мы установим, обновили, и теперь там все по другому.
Самый главный наверное вопрос у каждого, кто увидел этот пост: А зачем?
Возможно каждый из вас видел разнообразных телеграм ботов, таких как Iris, Mafia True, боты для верификации на какие то каналы и т.д. Все они написаны на TelegramAPI, а в свою очередь, взаимодействовать с TelegramAPI помогают разные библиотеки. К таким относится библиотека Aiogram или telebot на языке программирование Python. К чему я веду: абсолютно любой человек может написать телеграм бота для своих целей, или по заданию заказчика (если вы фрилансер), или вас попросят друзья написать какого-нибудь простого телеграм бота, чтобы он им в 7 утра каждый день присылал картинку, как пример говорю. Возможностей много, а главное, что это интересно сделать что то уникальное, что нету у других. Плюсов достаточно много, а минусы у всех свои. Вот и ответ.
Читайте внимательно все то, что я буду здесь писать далее (буду еще прикладывать ссылки, где нужно либо скачивать, либо почитать), наливайте себе что-нибудь попить, и вперед!
Формат сегодняшнего гайда будет таким:
Для того, чтобы начать нам писать телеграм бота, нам нужно сначала подготовится к его написанию. Это часть посвящена тем людям, которые впервые будут программировать на языке программирование Python, то есть имеют нулевой опыт в этом деле. Для тех, у кого есть среда программирование, установлен сам язык, можете пропустить этот пункт.
Теперь когда остались те, у кого всего этого нету, давайте начнем.
Первое, что мы сделать, установить язык программирование. Как я уже сказал, мы будем писать на языке программирование Python, так что устанавливать будем его. Переходим по ссылке (ТЫКНИ) на официальный сайт Python. После этого, скачиваем версию Python. Будем брать версию 3.11.8, т.к в этой версии нужные нам библиотеки присутствуют, и имеют последнюю версию. Делаем все, что указано на картинке ниже.

1 пункт: Нажмите на Downloads. Вы перейдете на страницу с версиями Python. 2 пункт: Нажмите на "Python 3.11.8". 3 пункт: Пролистайте вниз, где будет категория Files. Нажимайте на "Windows installer (64-bit)"
Затем нажимайте на скачанный файл, и вы перейдете в установщик. Устанавливайте сам Python, и ждите его завершения.
Поздравляю, теперь у нас есть язык программирование Python
Следующим нашим шагом будет установка среды разработки, то есть там, где мы будем писать наш код. Существуют разные среды разработки, но популярный для Python - это PyСharm (ТЫКНИ). Я с ним работаю больше 6 месяцев, и он очень удобный для работы с языком программированием Python. Так что устанавливаем эту среду. Делаем все, что указано на картинке ниже.

1 пункт: Переходим по ссылке, и нажимаем на "Download". 2 пункт: Листаем вниз, и снова нажимаем на "Download". После этого, нажимайте на установленный exe файл, и выполняйте установку.
После того, как у нас есть язык программирование, среда разработки. Мы выполнили эту часть, я вас поздравляю
Те люди, у которых это уже есть, вы смело пропустили эту часть
Теперь приступаем к самой разработке бота. Первым делом, чтобы нам начать писать бота, нам нужно скачать необходимую библиотеку. В дальнейшем, мы будем устанавливать другие библиотеки, но пока, в данном уроке, мы установим только одну.
Есть два способа установки библиотек. Первый, через командную строку Windows. Этот способ подходит, если вы работайте в другой среде программирование. А второй способ, через PyCharm. Этот способ намного удобнее, и ненужно так много сил. Устанавливать мы будем библиотеку Aiogram. Есть конечно Telebot, но Aiogram имеет множество преимуществ, чем у Telebot. Как пример, Aiogram быстрее, чем Telebot, ведь Aiogram основан на асинхронных функциях. Что такое асинхронные функции в Python, вы уже посмотрите сами, если интересно. Единственное, что я скажу по асинхронным функциям, они просто быстрее, чем обычные функции. Все.
Переходим к установке библиотеки Aiogram по второму способу. Вам нужно зайти на Interpreter Settings. Можете сделать через настройки PyCharm, а далее ввести в поиск. Делаем все, что указано на картинке ниже

1 пункт: Заходим на Interpreter Settings, и нажимаем на +. 2 пункт: Вверху вводим название нашей библиотеки, а именно Aiogram. Затем нажимаем на Install Package, и ждем завершение загрузки
Возможен случай, когда вы не можете установить библиотеку. Это нормально. Нужно просто Pycharm направить на наш установленный Python, чтобы мы могли спокойно установить библиотеку. Как это делается, смотрите на картинку ниже
Если вы все сделали верно, можете снова попробовать установить библиотеку.

1 пункт: Заходим на Interpreter Settings, и делаем все, что показывают стрелки. 2 пункт. нажимаем на System interpreter, и нажимаем на Interpreter, и выбираем наш установленный Python. Примечание: Такого, как у меня, у вас не будет, так как у меня уже добавлен Python в Pycharm.
Отлично, мы установили нашу библиотеку. Теперь мы можем написать нашу базовую структуру для бота.
НО! Чтобы наш бот работал, нам нужно его сначала создать в телеграме. Для этого, нам нужен бот BotFather (ТЫКНИ). Благодаря нему, мы будем взаимодействовать с ботом через код. Делаем все по скрину

Если вы все сделали правильно, у вас будет также, как у меня, только у вас не будет замалёван токен. Копируем токен, и сохраняем где то. ВНИМАНИЕ, если кто то получит ваш токен, он может взаимодействовать с вашим ботом, так что будьте бдительны.
Теперь, мы имеем токен к нашему боту, а это значит, что пора приступать к созданию бота (Наконец).
В PyCharme ищем "File", а затем "New Project". Это наш проект, в котором будем хранить написанный код, или какие то файлы. Тут дальше ваша настройка, куда будет сохранен проект, будет ли начальный скрипт и т.д. Настраивайте сами, под ваше удобство.
Создав проект, у вас будет ничего. По пустому окну, где наш проект, нажимаем ПКМ, затем наводимся на New, и выбираем Python File. Называем наш файл Python "bot" (просто bot, а не bot.py).
Теперь, в нашем созданном файле мы должны импортировать нашу библиотеку. Если вы знаете хоть какую то базу, то вам не составит проблем. Но напомню. Чтобы импортировать какую-нибудь библиотеку, вам нужно написать ключевое слово import. Это импортирование всей библиотеки. Если вам нужно что то конкретно взять из библиотеки, то пишем ключевое слово from. Полное его написание: from <какая та библиотека, ее пути> import <импортировать нужное>. Ключевое слово from помогает сократить громоздкие пути к какому либо классу, или к параметру.
Нам для начала из библиотеки Aiogram нужно импортировать классы Bot, Dispatcher, Message и переменную F. Для этого, мы будем использовать ключевое слово from

ПРИМЕЧАНИЕ: Класс Message находится не в самой библиотеке aiogram, а в папке types этой библиотеки. Поэтому, мы берем из aiogram.types наш класс Message
Отлично, мы импортировали нужные нам классы, и переменную. Теперь, напишем нашу базовую структуру бота, то есть его включение, а затем и первую команду
Включение бота происходит через класс Dispatcher. В нем же, есть наша функция, которая отвечает за запуск нашего бота, ну и кроме запуска, Dispatcher обьявляет команды и события (event) для нашего бота.
Объявление бота происходит через класс Bot, где мы вставляем наш токен, который любезно выдал BotFather. Вот как выглядит наш дополненный код

Объявляем переменную bot, и присваиваем ему класс Bot. В нем, мы вставляем наш токен в параметр token. Затем снова объявляем переменную D, но теперь присваиваем наш класс Dispatcher. Через эти переменные, мы и создадим нашу базовую структуру
После объявление переменной, мы создаем асинхронную функцию. Именно асинхронную функцию, чтобы мы могли запустить через библиотеку Asyncio, ну и потому что в Dispatchere присутствуют асинхронные функции. Просто запомните, что асинхронные функции будут работать только в асинхронных функциях (простите за повторение), а их объявление происходит с использованием ключевого слова await.
В нашей функции, мы объявим функцию запуска бота, ну и для того, чтобы мы знали о работе бота, мы дополнительно напишем еще функцию print.
После написании функции, мы эту функцию должны заставить работать. Для этого, используем библиотеку Asyncio. которая работает с нашими асинхронными функциями. Из этой библиотеки, нам нужна функция run, которая отвечает за запуск нашей функции. Код будет выглядеть так

ПРИМЕЧАНИЕ: В 12 строчке - это структура запуска скрипта. Ее только запоминать. Также, рекомендую использовать обработчик ошибок try, чтобы когда мы выключали скрипт, у нас вместо ошибки будет выведен текст. Удобно? Да, и красиво
Если мы запустим наш скрипт, нажав на пуск, то у нас все заработает без ошибки. Это говорит о том, что наш бот работает, и включен. Это базовая структура запуска бота без использования Роутеров (об этом чуть позже). С этой частью мы закончили, я вас поздравляю!
Теперь, мы сделаем нашего бота функциональным. Для этого, нам нужно "зарегистрировать" нашу команду. Запомните, все команды пишутся одинаково, вам нужно только запомнить структуру. Вот сама структура

Ваша команда - это то, что вы ведете в чат вашего бота, чтобы он откликнулся. "название_команды" - это название вашей функции, но рекомендую писать на английском, это просто как пример
Теперь поподробнее об этой структуре.
- Мы используем декоратор (декораторы объявляются @) D.message, регистрируя нашу команду. Видите ли, этот декоратор универсальный. То есть, мы можем сделать как событие (event), так и команду. Если мы хотим конкретно команду, то мы используем магический фильтр, или по простому переменная F. Благодаря этому фильтру, мы сможем создать или событие, или команду с использованием условия. То есть, F.text == 'start' читается так: Функция используется, если пользователь написал в чате start.
- Мы пишем асинхронную функцию, и внутри этой функции объявляем тип сообщение, или наш класс Message. Благодаря этому, мы можем взаимодействовать с сообщением, отправлять сообщения от лица бота и т.д.
- Внутри функции мы пишем наши команды, функции и т.д.
Это все о структуре регистрации команды. Теперь напишем в нашем проекте первую команду. Мы хотим, чтобы пользователь при нажатии на кнопку старт, бот нам отвечал привет. Давайте напишем эту команду, и вот ее результат (ТЫКНИ)

Вот как выглядит код с командой. В нашем фильтре мы написали /start, т.к именно это получает бот при нажатии на кнопку снизу, когда мы заходим на страницу бота
Это все. Довольно просто, не так ли? В дальнейшем, мы будем делать более сложные и интересные команды. На этом, часть закончена
* * *
Вот и все начало по созданию телеграм ботов. Пока что, это база, которую нужно знать. В дальнейшем, в моих гайдах будет:
Поделиться:
Пожертвование пользователю Svetoi_Den
Пожертвование пользователю Svetoi_Den
Ваше пожертвование получено пользователем! Спасибо!
Лучшиекомментарии (0)
Комментариев к этому посту пока нет. Хотите оставить первый?