Как работают Telegram-боты?

Ты постоянно слышишь про телеграм ботов, но знаешь ли как они работают и как сделать своего? Об этом расскажем в этом видео!

Расшифровка видео

Поиск по видео
0:08
Перед просмотром этого видео, нужно пройти капчу и доказать что ты не бот, для этого – подпишись на
0:13
наш телеграм канал. Ссылочка в описании! Привет! Автоматизация всех процессов,
0:19
которые можно автоматизировать – это главная задача IT-сферы.
0:23
И автоматизировать можно всё по-разному. Например, создать десктопное или веб
0:27
приложение куда будут заходить пользователи твоей криптобиржи или чего ты там придумал.
0:31
Но в обоих случаях есть проблема – это чаще всего долго и дорого. Нужно делать всякие внутренние
0:37
шестерёнки, потом пилить красивый интерфейс, короче, это может позволить далеко не каждый
0:41
бизнес. А автоматизировать и экономить ресурсы благодаря автоматизации хочется.
0:47
Есть сервисы, в которых мы проводим большую часть времени. Общаемся,
0:50
смотрим мемчики и читаем всякие полезные штуки. Да–да, это месседжеры. А среди всех мессенджеров
0:56
есть один самый популярный. Возможно, именно в нём ты узнал про то, что у нас
1:01
вышло новое классное видео. Там ещё самолётик на аватарке и им пользуются 900 миллионов человек
1:06
ежемесячно. Мы про Телеграм, конечно же. В 2015 году месседжер выкатил новую
1:12
классную фичу – создание ботов внутри сервиса. И тут мог послышаться голос Леонида Вениаминовича
1:18
Володарского, но на самом деле началась новая эра автоматизации разных процессов
1:21
с помощью этих самых ботов. Сейчас они могут быть интернет-магазином, могут отслеживать происходящее
1:27
в чатах, могут общаться с клиентами, вместо людей, благодаря внедрению всяких генеративных моделей.
1:33
Если что, то боты – это специальные аккаунты в Телеграм. И как мы сказали ранее они могут
1:37
автоматически работать с сообщениями. Например, есть боты, которые заменяют
1:41
личный кабинет пользователя, есть боты переводчики и напоминалки, есть боты,
1:45
которые вставляют в беседы несмешные анекдоты и даже есть MMO PRG про жаб, которая может
1:51
превратить групповой чат в PVP-арену. У нас, конечно же, тоже есть свой бот,
1:55
где можно подобрать себе классный курс или пройти вводные уроки. Залетай!
1:59
В целом, сейчас ботов безграничное количество и они решают разнообразные задачи.
2:04
Самое главное преимущество ботов в том, что их можно легко и быстро делать, так как Telegram
2:08
сделал удобный API, то есть набор уже готовых инструментов, который помогает одному приложению
2:13
легко общаться с другим. Это как справочник для всяких сервисов, который помогает им находить
2:18
друг друга и обмениваться информацией. Ещё плюс в том, что Телеграм даёт уже
2:22
готовый интерфейс, то есть фронтенд. Это сам интерфейс чата с ботом. И его уже не
2:27
надо разрабатывать. Остаётся только реализовать бэкенд и всё чики-пуки.
2:31
И на самом деле тут разработчикам тоже упростили жизнь. Во многих языках программирования есть
2:36
библиотеки и фреймворки, то есть наборы готовых наборов кода, которые ещё больше
2:40
ускоряют разработку Телеграм ботов. Самый популярный язык для их создания – это Python.
2:45
А самая популярная библиотека это Python Telegram Bot, но чаще всего можно встретить реализации
2:50
на фреймворке Aiogram. Это потому, что он максимально упрощает работу, и ещё он асинхронный,
2:55
то есть один кусочек кода не ждёт пока закончит выполняться другой. Поэтому, его часто выбирают
3:00
небольшие компании, веб-студии и новички. Давай мы докажем, что делать ботов не сложно
3:05
и интересно. Для примера сделаем бота с использованием Python и Айограм,
3:10
который будет присылать юзеру рандомных собачек. Собачек он будет брать от другого ЭйПиАй.
3:15
Начнём не с написания кода, а с регистрации бота в Телеграме. Да, их надо регистрировать.
3:20
И делается это с помощью другого бота. Теперь машины создают другие машины.
3:25
Итак, нужно найти в поиске бота по имени @BotFather и как крестный отец,
3:29
он сделает тебе предложение зарегистрировать бота от которого ты не сможешь отказаться.
3:33
Кстати, ещё один маленький нюанс. Для удобства коммуникации с такими ботами используют команды,
3:38
которые записываются через слэш, а потом пишется название команды. Например,
3:44
/start для запуска бота. Чаще всего такие команды придумывают сами разработчики бота,
3:48
но /start остаётся неизменной. Без этого тяжело было бы понять, что хочет пользователь.
3:54
Так вот, для регистрации бота в BotFather нужно написать команду /newbot, но надо
3:59
написать её с уважением, как другу. Потом нужно придумать имя бота,
4:03
оно не обязательно должно быть уникальным. А ещё юзернейм, который уже обязательно должен быть
4:08
уникальным и заканчиваться на слово bot. Так как ботов много, то с первого
4:12
раза придумать достаточно тяжело. После этого BotFather даст специальный
4:16
токен. То есть код, который откроет доступ к этому боту через ЭйПиАй Телеграм. Его нужно хранить в
4:21
секрете. Чуть позже нам этот токен понадобится. Вот и всё. Пора приступать к написанию бота. Если
4:27
что, то aiogram по-умолчанию недоступен, его надо скачать. Ввести в поисковике “скачать
4:32
айограм без смс и регистрации” не выйдет. Все библиотеки устанавливаются с помощью специального
4:38
пакетного менеджера, который называется pip. После скачивания посмотрим на пример кода,
4:43
который просто реагирует на стартовую команду. Здесь мы сначала импортируем
4:47
библиотеки asyncio и requests. Первая даёт возможность работать с асинхронностью в коде,
4:52
а вторая отправлять запросы ко всяким ЭйПиАй, от туда как раз мы будем брать картинки собачек.
4:58
Потом мы ещё импортируем части Айограм, которые нам понадобятся.
5:01
Токен можно добавить в отдельную переменную в виде строки. Ещё нам понадобится штука, которая
5:06
умеет обрабатывать команды бота, она называется диспетчер и тоже добавляется в переменную.
5:11
Теперь напишем две функции. Они асинхронные, на это указывает оператор async перед словом
5:17
def. Чтобы Айограм понимал, что функция предназначена для обработки какой-нибудь
5:21
команды мы добавляем декоратор message, который обозначается знаком собачки и в аргумент которого
5:27
указываем эту команду. Если что, то декораторы внутри это на самом деле просто специальные
5:31
функции. Они могут менять то, что делает код, к которому он применён, при этом не меняя его.
5:37
CommandStart() как раз отвечает за стартовую. А в саму функцию мы тоже передаём message,
5:42
но это уже не декоратор, а просто информация из сообщения. Сообщение пользователя это больше, чем
5:48
текст. Там хранится идентификатор пользователя, его имя и ещё куча всякой информации.
5:53
Потом в функции answer мы указываем сообщение, которым должен ответить бот пользователю.
5:59
Обрати внимание на оператор await. Когда он встречается в коде,
6:02
выполнение функции приостанавливается до тех пор, пока операция не закончит работу.
6:07
Это помогает остальным задачам выполняться, пока работает другая.
6:10
Функция main нужна нам просто для запуска всех частей бота. Там мы делаем переменную,
6:15
где будет храниться специальный объект, который общается с API Телеграм. А потом
6:20
с помощью функции start_polling() запускаем отслеживание того, что происходит с ботом.
6:25
Последним шагом с помощью функции run() мы запускаем нашего бота.
6:28
Крутяк. Теперь бот откликается на команду /start. Но цель ещё
6:32
не выполнена. Наш бот не отправляет собачек. Добавим ещё одну функцию похожую на первую.Но
6:38
обрати внимание, что у неё отличается содержимое декоратора message, теперь там слово Command,
6:43
а в нём записано название новой команды без знака слэш. Назовём эту команду random_dog.
6:49
Внутри указываем, что будет отправляться запрос на получение информации, который называется get.
6:54
Сам запрос отправляется к ЭйПиАй и он даёт случайных собакенов в специальном формате,
6:58
который называется JSON. Визуально JSON похож на словари.
7:02
Там есть ключи и их значения. В ключе url как раз лежит ссылка на картинку.
7:07
Содержимое JSON запишется в переменную contents, а потом в переменной url мы возьмём ту самую ссылку.
7:14
Потом используя функцию answer_photo(), указав аргумент url передадим эту ссылку,
7:19
чтобы бот знал откуда брать картинку. Остаётся только запустить наш скрипт с ботом в редакторе
7:24
кода и всё работает. Но бот будет работать пока ты не закроешь редактор. Как сделать так,
7:28
чтобы бот работал непрерывно? Можно загрузить его на сервер.
7:32
Например, запустить можно в CodeSandbox. Для этого достаточно создать проект,
7:36
загрузить туда файлы бота, а потом включить. Бот будет запущен даже, если вкладка закроется.
7:42
Или задеплоить на сервер в Amvera. Там даётся стартовый баланс, который можно
7:46
использовать. Деплой достаточно простой. Нужно создать проект, добавить файлы с помощью Git,
7:51
а потом задать настройки для запуска. Остальные решения стоят денег, но для
7:55
маленького бота хватит самого слабого сервера. Вот теперь бот отправляет по команде картинки.
8:00
Если что, то боты могут отправлять не только картинки с текстом. Но и видео,
8:04
стикеры, аудио и прочие файлы. Поздравляем! Вот ты и написал
8:08
своего первого Телеграм бота и тем самым – сделал захват бездушными
8:12
машинами всего человечества немножечко ближе! А хочешь научиться писать более сложных ботов,
8:17
которых можно будет применить для бизнеса? Тогда записывайся на наш абсолютно бесплатный
8:22
курс по созданию телеграм ботов по ссылке в описании! Там ты сможешь написать своего
8:27
бота для телеги с кучей продвинутых фич, а по окончанию курса получишь именной сертификат.
8:33
Ещё у ботов бывают кнопки И встроенные веб-приложения
8:36
или как их ещё называют – вебапы. Да-да, приложение внутри приложения.
8:40
В последнее время это очень популярно и многие компании их активно используют.
8:44
Даже сам Телеграм. Например, у них есть свой криптокошелёк и он как раз работает через вебап.
8:49
Кароче, телеграм боты работают на основе кода, который создали разработчики. Они
8:54
помогают автоматизировать рутинные задачи, такие как оплата штрафов за неправильную парковку,
8:59
отправка напоминаний, приём заявок, перевод текстов, транскрибирование аудио
9:03
и конечно же – генерация мемов. Внешне они выглядят как обычные диалоги в мессенджере.
9:09
Звучит как что-то идеальное, но это не совсем так. Минусы у них тоже есть. Функционал API всё равно
9:15
не безграничен и что угодно сделать не получится. Также, ограничение есть и в интерфейсе. Да,
9:21
его нам не нужно делать, но и что-то новое сделать не получится. Но эту проблему,
9:26
кстати, частично решают вебапы. Вообще, это всё субъективно и зависит от задач.
9:31
Вот ты и разобрался с этой темой. Под конец пройди проверку, что ты не бот и
9:35
ответь на вопрос. Что нельзя делать с помощью Телеграм ботов? Ответ напиши в комменты.
9:40
А пока ставь лайк этому видео, подписывайся на этот канал,
9:43
на телеграм канал, зови друзей и приходи сам писать телеграм ботов на наш бесплатный курс!
9:48
Пака!

Поделиться: