Научная статья на тему 'СТРУКТУРИРОВАНИЕ ОБРАБОТЧИКОВ В TELEGRAM-БОТАХ ДЛЯ ОПТИМИЗАЦИИ ВЗАИМОДЕЙСТВИЯ'

СТРУКТУРИРОВАНИЕ ОБРАБОТЧИКОВ В TELEGRAM-БОТАХ ДЛЯ ОПТИМИЗАЦИИ ВЗАИМОДЕЙСТВИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
129
19
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
телеграмм боты / обработчики сообщений / создание бота / информационные технологии / telegram bots / message handlers / bot creation / information technology

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Токарев Э. А., Галимянов Ф. А.

В данной статье рассказывается, для каких целей можно использовать телеграмм бота, а также объясняется процесс разработки телеграмм бота на языке Python с использованием библиотеки pyTelegramBotAPI.

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

STRUCTURING HANDLERS IN TELEGRAM BOTS TO OPTIMIZE INTERACTION

This article describes for what purposes the telegram bot can be used, and also explains the process of developing telegram bots in Python using the pyTelegramBotAPI library.

Текст научной работы на тему «СТРУКТУРИРОВАНИЕ ОБРАБОТЧИКОВ В TELEGRAM-БОТАХ ДЛЯ ОПТИМИЗАЦИИ ВЗАИМОДЕЙСТВИЯ»

УДК 004 Токарев Э.А., Галимянов Ф.А.

Токарев Э.А.

студент 2 курса Казанский национальный исследовательский технологический университет (г. Казань, Россия)

Научный руководитель: Галимянов Ф.А.

старший преподаватель Казанский национальный исследовательский технологический университет (г. Казань, Россия)

СТРУКТУРИРОВАНИЕ ОБРАБОТЧИКОВ В TELEGRAM-БОТАХ для ОПТИМИЗАЦИИ ВЗАИМОДЕЙСТВИЯ

Аннотация: в данной статье рассказывается, для каких целей можно использовать телеграмм бота, а также объясняется процесс разработки телеграмм бота на языке Python с использованием библиотекиpyTelegramBotAPI.

Ключевые слова: телеграмм боты, обработчики сообщений, создание бота, информационные технологии.

Цель данной работы - написать собственного телеграмм бота, изучить, как он устроен и продемонстрировать его в действии. Задачи:

1. Выяснить, для каких задач можно использовать бота.

2. Проинструктировать, как создать своего бота.

3. Изучить принципы работы телеграмм-бота.

1. Для чего используются телеграмм-боты.

• Получение данных.

Телеграмм-боты могут выдавать данные по запросу, такие как сведения о погоде, обменных курсах, актуальных новостях и т.д.

• Взаимодействие.

Боты могут служить для взаимодействия с людьми через телеграм, например, для пересылки текстов, изображений, видеоклипов и звуковых файлов.

• Автоматизация процессов.

Боты способны облегчить автоматизацию разнообразных процессов, например, для установки напоминаний, организации заданий, рассылки сообщений по заданному графику и прочего.

• Развлечение.

Имеются телеграм-боты, разработанные для развлекательных целей, например, для участия в играх, создания шуток, прохождения тестов и прочего.

• Ведение бизнеса.

Боты могут найти применение в коммерции для автоматизации взаимодействия с клиентами, например, для обработки заказов, реагирования на запросы и прочего.

• Обучение.

Боты могут быть применены в обучающих целях, например, для изучения иностранных языков, доступа к образовательным ресурсам и прочего.

2. Как создать собственного телеграмм бота

1. Установка PyCharm Community Edition на компьютер.

Чтобы изучить принципы работы телеграмм-бота более детально, необходимо сначала его создать и запустить в PyCharm. PyCharm - это интегрированная среда разработки (IDE), которую можно использовать для создания Python-программ. Программу можно скачать с официального сайта: https: //www.j etbrains. com/pycharm/download/.

2. Получение токена бота.

Перед созданием бота в Telegram вам необходимо иметь учетную запись Telegram и установленное приложение Telegram. После этого вы можете создать бота, перейдя к BotFather по ссылке: https://telegram.me/BotFather. Как только вы отправите ему сообщение "/start", BotFather отправит вам инструкцию по созданию нового бота.

После прохождения данных инструкций, он предоставит вам токен доступа, который нужно сохранить в надёжном месте. Он понадобится далее.

3. Установка pyTelegramBotAPI.

Мы будем использовать библиотеку pyTelegramBotAPI. Откройте PyCharm Community Edition, создайте новый проект и установите её, выполнив следующую команду в терминале PyCharm: pip install pyTelegramBotAPI (рис 1.).

File Edit View Navigate Code Refactor Run Tools VÇS Window Help D. ' ctclh . ости.ру ■ Ort стоиИос™.ру —- □ X

Python programs Bût стоимости [J Bot стой мости .py jt w Bot стоимости * ► й Q <1 »

■с HI Project - О - *Т" О — Bot СТОЙ hi ОСТИ, ру

cl > ta Python programs 70 Al Av. ¡g 2 й V

> Hill External Libraries 71 —

^ Scratches arid Consoles 72 =

73

7<

75 —

Terminât Local + V" О —

Windows PowerShell

CO Корпорация Майкрософт (Microsoft Corporation). Все права защищены.

" Попробуйте новую кроссплатфорненную оболочку PonerShell (https://sna.iFis/pscoreoJ

i РЕ E:\Desktop\Python programs? pip install pyTelegramBotAPlQ

Jf Favorites

i= TODO 9 Problems И Terminal S Fyttion Packages Ф Python Console Q Event Log

1У Python 3.9 (Python programs) Ъ

Рисунок 1. Открытие терминала и установка Telegram API.

4. Импортирование модуля telebot, создание бота (рис 2.).

telegram hat.py

1 import telehot

2

3 bot telebot.TeleBotC'TOKEN1)

к [

5

6

7

Рисунок 2. Импортирование 1е1еЬо1

После выполнения всех этих действий можно начинать писать код для нашего бота.

3. Принцип работы Телеграмм-бота.

Telebot использует обработчики сообщений (рис 3.) для реагирования на сообщения от пользователей. Обработчики сообщений могут быть определены для различных типов сообщений, таких как текстовые сообщения, фотографии, видео и другие.

f^ telegram botpy

l Import telebot n

3 bot telebot.TeleBoti'TOKEN'}

5 6 (&bot.raes5age_handter( 7 def send _i;iethods(i?isg) a bot. send_inessage(i:!sg. chat .id, ■['text']) "Привет, как дела?")

5

Рисунок 3. Обработчик для любого текстового сообщения.

"@bot.message_handler" - это обработчик сообщений. В данном случае он производит обработку любого сообщения, содержащего текст.

"@def send_methods(msg)" - это функция, вызываемая обработчиком. В нашем случае она принимает входящее от пользователя сообщение

Обратим внимание на метод "bot.send_message()". С помощью него бот может общаться с пользователем. Внутри круглых скобок метода сначала передаётся "msg.chat.id", который нужен для того, чтобы бот отправил сообщение только тому пользователю, кто ему написал. Далее можно в кавычках задать текст, который бот воспроизведёт.

Чтобы можно было запустить бота, необходимо в самом конце программы дописать одну строчку (рис 4.).

9

1Q bot.pollingC True)

11

Рисунок 4. Запуск цикла ожидания сообщений от Telegram.

Теперь давайте запустим бота и проверим, как он работает. Для этого нажмите на зелёную кнопку Run (рис 5.) и зайдите в диалог с вашим ботом. Если вы не знаете, как открыть диалоговое окно, то перейдите в BotFather и найдите сообщение подобного формата "@NAME_bot" и нажмите на него (NAME - имя бота, которого вы регистрировали).

Reractor Run tools VCS Window Help Bot aoi1 ic:i;: telegram bot.p — LI X

leiegram bot.py Jt* teiegram bet * '1* $ Q, ф fr

— £ telegram bat.py

1 import telebot дз vi ^

2

3 bot telebot.TeleBot('5840752078:AAEohbiSZbHrp№iElGSkXRztV9k_q__D8qE1)

■ ■ ■ ■ ■ J л

к

5

6 @bot.nessage_nandler( ^'text'J)

7 def send_nethods(i7isg)

a bot.send_message07Tsg.chat.id, "Привет, как дела?11) Я (

9

1Э bat.pollingC -True)

11 I

12 13

О -

Рисунок 5. Запуск бота.

Как мы уже знаем, бот на любое текстовое сообщение ответит этой фразой. Но что если отправить цифры в сообщении? (рис. 6.).

/start 23-. ■

Привет, как дела?

Привет1У меня все прекрасно, а у тебя?

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

23:12

Привет, как дел а?

J 2345 23:М vi'

Привет, как дела?

/Ф Write a message... |" J (v) д,

Рисунок 6. Демонстрация работы бота.

Интересный факт: цифры тоже относятся к текстовой информации, но не будем зацикливаться на этом.

Обработчики могут срабатывать не только на тип сообщения, но и на строго определённые команды. Достаточно лишь придумать название команды и вписать её в обработчик, например: "соттапёв=['команда']'\

Давайте теперь напишем бота, у которого есть обработчики команд и отдельный обработчик текста, который будет правильно расположен (рис 7.).

ц telegram bat.py

1 import telebot

2

3 bot telebot.TeleBoti'5840752078: AAEahbiSZbHrplNnElGSkXRztV9k_q__D8qE')

. . -. . ■. 1 i I

A

5 [BDOt.nessage_handlerf ['start'])

6 def send_welcoiae(iJisg)

7 bot.sencLnessageinsg.cbat.id, "Привет! Я телеграмм бот. Напиши /help," а "чтобы узнать все команды")

@bot.nessage_handler( ["help'I)

cfef send_help(i7isg}

bot.send_i0essage(jij5g.chat.id, "Список команд: /start - начать чат'1- "

"/help - показать список команд л" "/getuserid - получить свой ID")

.'Awwwwvvwvw г

ßbot.nessaqe_handler( ['qetuserid1])

-T*. S-S-y- V-. Л S-S-y-S-S-T^S-

def send_userid(i7isg)

bot.send_riessage(i7i5y.chat.id, f"Bau ID: ÜTTsg.ehat. id}")

|dbot.nessage_handler( [ 'text' I)

öef answer_to_any_text(i;isg)

bot.send_nessrtge('',|i4",l.chat.id, "Вы написали текстовое сообщение")

bot.pollingС)

Рисунок 7. Более сложный бот с обработчиками команд и обработчиком текста в конце.

Международный научный журнал «ВЕСТНИК НА УКИ» № 5 (74) Том 1. МАЙ 2024 г. Давайте запустим этого бота и напишем команду "/start" (рис 8.).

/start ф

Привет! Я телеграмм бот. Напиши elp, чтобы узнать все команды

У2) Write a menage... [l- ] (и)

Рисунок 8. Демонстрация команды старт.

При получении сообщения, бот проверяет каждый обработчик. В данном случае сразу же сработал самый первый обработчик "start", а все остальные обработчики даже не будут проверяться, пока не исполнится код из первого обработчика. В нашем случае бот исполнил весь код (нам пришло ответное сообщение). Теперь быстро проверим остальные команды (рис 9.).

/help 23:37 S/

Список команд:

/start - начать чат

/help - показать список команд

fgetu'sefid - получить свой ID

/getuserid 2337 SS

Ваш Ю: Л »/

ул Write a message,,. © ф

Рисунок 9. Демонстрация остальных команд.

Обратите внимание, что, если отправить команду без символа "/", бот распознает это сообщение, как текст (рис 10.).

start if t •> :42 S/

Вы написали текстовое сообщение

help ■:■ ■А1 SS

Вы написали текстовое сообщение

getuserid :42

Вы написали текстовое сообщение

Write a message,., ["J ^Ц/

Рисунок 10. Важность написания символа "/" для команд.

Что происходит в данном случае? Сначала проверяется обработчик команды "start", но из-за того, что текст не является командой, он не срабатывает. Затем по цепочке проверяются все остальные обработчики, и только в последнюю очередь проверяется текстовый обработчик, который срабатывает. Если бы обработчик текста был в самом начале, то мы никогда бы не получили ответ от команд, так как всегда срабатывал бы самый первый обработчик, а остальные даже бы не проверялись.

Заключение.

Использование обработчиков сообщений в Telegram-ботах является ключевым элементом для эффективного взаимодействия с пользователями. Основываясь на типах сообщений, таких как текст, фото или видео, или конкретных командах начинающихся с символа "/", можно настраивать бота, чтобы он реагировал адекватно и целенаправленно на каждый тип взаимодействия. При этом, порядок расположения обработчиков играет критическую роль, поскольку бот проверяет их последовательно, что подчеркивает важность стратегического планирования в разработке бота.

Обработчики позволяют боту не только эффективно управлять потоком коммуникаций, но и обеспечивать пользовательский опыт, понимая и правильно

реагируя на различные формы входящих сообщений. Это создает возможности для разработчиков создавать более умные и адаптируемые инструменты автоматизации, способные обслуживать широкий спектр запросов и потребностей пользователей.

СПИСОК ЛИТЕРАТУРЫ:

PyTBA. PyTBA documentation. Read the Docs. URL: https://pytba.readthedocs.io/ru/latest/index.html (дата обращения: 030.04.2024).

Tokarev E.A., Galimyanov F.A.

Tokarev E.A.

Kazan National Research Technological University (Kazan, Russia)

Scientific advisor: Galimyanov F.A.

Kazan National Research Technological University (Kazan, Russia)

STRUCTURING HANDLERS IN TELEGRAM BOTS TO OPTIMIZE INTERACTION

Abstract: this article describes for what purposes the telegram bot can be used, and also explains the process of developing telegram bots in Python using the pyTelegramBotAPI library.

Keywords: telegram bots, message handlers, bot creation, information technology.

i Надоели баннеры? Вы всегда можете отключить рекламу.