Разработка и запуск Telegram-бота - агрегатора сообщений

Автор: Сафина Г.Ф., Коняев Ю.С.

Журнал: Бюллетень науки и практики @bulletennauki

Рубрика: Технические науки

Статья в выпуске: 12 т.10, 2024 года.

Бесплатный доступ

Приведен процесс создания телеграм-бота для агрегации сообщений с целью упрощения коммуникации между самоуправлением и студентами общежития вуза (на примере Нефтекамского филиала УУНиТ). Код бота написан на языке программирования Python в среде программирования PyCharm. Для запуска бота используется хостинг, специализированный под Python-проекты: PythonAnywhere.

Тelegram-бот, разработка, язык python, онлайн-хостинг

Короткий адрес: https://sciup.org/14131718

IDR: 14131718   |   DOI: 10.33619/2414-2948/109/20

Текст научной статьи Разработка и запуск Telegram-бота - агрегатора сообщений

Бюллетень науки и практики / Bulletin of Science and Practice

УДК 004.428.4                                     

Telegram — мессенджер, получивший широкое распространение во многих странах. Сегодня телеграм-канал стал практически обязательным атрибутом любой компании, медийной личности, свои каналы есть у СМИ и государственных учреждений. Многие каналы в мессенджере для упрощения взаимодействия со своей аудиторией прибегают к использованию ботов [1]. Область применения ботов ограничена лишь возможностями современного программирования.

Рассмотрим процесс создания своего бота для Telegram на языке программирования Python. Все студенты, проживающие в общежитии Нефтекамского филиала УУНиТ состоят в группе в Телеграме. Помимо объявлений самоуправления и предложений (просьб) студентов в чате также происходит постоянное общение, что затрудняет работу самоуправления. Для решения этой проблемы разработали чат-бота, который может принимать жалобы и предложения, адресованные старостам общежития, и пересылать их в отдельную беседу, в которой состоят только члены самоуправления.

Для начала нужно зарегистрировать нового бота через другого бота – BotFather. Для этого достаточно следовать простым инструкциям, придумать имя бота и его уникальный логин. После этого получим токен нашего бота — строку из различных символов, используемую для доступа к нашему боту. Токен вашего бота необходимо хранить в секрете.

Теперь, когда бот создан, добавляем его в беседу, куда он будет пересылать сообщения. Для этого необходимо узнать id беседы. Сделать это можно несколькими способами, один из них — добавить в участники беседы бота LeadConverter и отправить туда же сообщение: “/get_chat_id”.

В написании кода будем использовать библиотеку pyTelegramBotAPI: import telebot.

Далее создаём глобальные переменные, содержащие токен бота и id чата, в который будут пересылаться сообщения:

BOT = telebot.TeleBot(<токен бота>)

CHAT_ID =

Теперь можно написать главную функцию-обработчика бота, которая будет проверять полученное от пользователя сообщение и вызывать соответствующую функцию ответа с использованием специального декоратора message_handler из ранее установленной библиотеки:

@BOT.message_handler()

def get_text_messages(message):

greeting(message)

bot_help(message)

forward(message)

else:

exception(message)

Далее реализуем все вышеуказанные функции:

“greeting” — функция приветствия, вызывается при получении слова «привет» или стандартной команды “/start”;

“bot_help” — стандартная функция справки, вызываемая по команде “/help”;

“forward” — основная функция нашего бота, которая пересылает сообщение в отдельный чат, если оно начинается со слова «problem: »;

“exception” – функция исключения, вызываемая, если не были вызваны остальные функции.

def forward(message):

def bot_help(message):

def exception(message):

Основная часть программы завершена, осталось вызвать функцию «infinity_polling», которая позволит боту получать обновления и запускать собственный код неограниченное количество раз: BOT.infinity _polling()

Наш бот готов. Его можно включить, запустив файл «main.py», но, когда выполнение файла прекратиться, бот остановится. Решить эту проблему предлагаем запуском главного файла на сервере. Для этого мы будем использовать сервис “PythonAnywhere”. Этот сервис предназначен для работы с Python-проектами на сервере.

Рисунок 1. Главная страница сервиса PythonAnywhere

Привет, я бот общаги. Если у тебя есть замечания к работе управления,твоим соседям или самому общежитию, напиши: "problem: <сообщение>". Твоё сообщение увидят только

ф Write a message...

Рисунок 2. Тест бота

После простой регистрации на сервисе необходимо выгрузить наш файл: с главной страницы переходим в меню “Files”, нажимаем на кнопку “Upload a file” и выбираем наш файл. После этого возвращаемся на главную страницу и нажимаем кнопку «$ Bash». Открывается консоль, в которой мы вводим команду для загрузки используемой в нашем боте библиотеки: pip3 install --user telebot.

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

Таким образом, разработан, запущен и протестирован простой Telegram-бот, имеющий ответы на несколько базовых команд и реализующий основную функцию – пересылку сообщений в специальный чат самоуправления общежития. Внедрение этого бота может упростить работу студенческого самоуправления и наладить взаимодействие со студентами. Существует также возможность последующего расширения функционала чат-бота.

Список литературы Разработка и запуск Telegram-бота - агрегатора сообщений

  • Джанарсанам С. Разработка чат-ботов и разговорных интерфейсов. М.: ДМК Пресс, 2019. 340 с.
Статья научная