АНАЛИЗ И РАЗРАБОТКА ФУНКЦИОНАЛЬНОГО TELEGRAM-БОТА

Авторы:К. Д. Байкова, Т. А. Медведева

Источник:Байкова К.Д., and Медведева T.A.. "АНАЛИЗ И РАЗРАБОТКА ФУНКЦИОНАЛЬНОГО TELEGRAM-БОТА" Молодой исследователь Дона, no. 6 (33), 2021, pp. 15-20.

Аннотация

В статье проведен анализ технологии для мгновенного обмена данными — мессенджеров, которые поддерживают взаимодействие с виртуальными собеседниками — ботами. Приведена классификация и технология разработки ботов для мессенджера Telegram. Описан алгоритм работы ботов с помощью запущенного на сервере программного обеспечения. Разработанный и функционирующий на базе Telegram бот «InstaReminder» является универсальным и удобным средством для развития аккаунта и может быть использован SMM-специалистами и пользователями Instagram.

Введение

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

Анализ технологии мгновенного обмена данными

Мессенджер — система или программа мгновенного обмена сообщениями, текстовой или графической информацией [1]. Появление таких мессенджеров как Telegram, WhatsApp, Viber вытеснило SMS, так как сообщения и звонки через такие программы бесплатные, необходимо только быть подключенным к сети Wi- Fi.

Популяризация мессенджеров произошла в конце 20-го века, а первая программа «ICQ» была создана школьниками из Израиля в 1996 году [2]. Она быстро набрала популярность по всему миру, но использовалась на стационарных компьютерах, так как мобильные телефоны еще не были так распространены. Появление смартфонов, IPhone в 2007 году и Android в 2008 способствовало популяризации и быстрому развитию мессенджеров, появлению новых программ с улучшенными функциями и возможностью обмениваться разнообразными видами контента [3].

Индустрия приложений-мессенджеров продолжает стремительно развиваться, предоставляя пользователю новые продукты и новые технологии. Кроме возможности делиться информацией, некоторые мессенджеры поддерживают формат переписки с ботами и чат-ботами. Бот или виртуальный собеседник — это программа, автоматически выполняющая какие-либо действия по заданному сценарию, она работает внутри мессенджера и решает ряд определенных поставленных задач. Боты выполняют функции реального собеседника, но управляются с помощью программного обеспечения. Они используются в различных сферах для улучшения сервиса, рекламы какого-либо продукта или решения других задач [4]. Кроме этого, они помогают сократить затраты, увеличить конверсию и улучшить качество обслуживания клиента. Таких ботов можно настроить на реализацию практически любой задачи и, так как они работают на базе какого-либо мессенджера, то тоже являются кроссплатформенными. Именно поэтому к 2021 году использование ботов набрало такую популярность среди пользователей.

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

Взаимодействие пользователя с ботом

Рис. 1 - Взаимодействие пользователя с ботом

Классификация ботов и технология их разработки

Ботов по обучаемости можно классифицировать на необучаемые (скриптовые) и обучаемые (использующие машинное обучение).

Они могут быть внедрены в веб-сайты (в качестве онлайн-консультантов), мессенджеры, социальные сети, мобильные приложения и поисковые системы. По функционалу выделяют три вида ботов: консультанты, боты для сбора данных и сервис-боты.

Существует также несколько наиболее востребованных и популярных видов ботов:

  1. интернет-магазин — является одним из самых выгодных ботов для бизнеса, так как выполняет функцию менеджера по продажам;
  2. агрегатор — бот, помогающий выбрать какие-либо услуги;
  3. бот-информер, который помогает ответить на узконаправленный вопрос пользователя и является аналогом поисковой системы;
  4. целевой, предназначенный для взаимодействия с определенной группой людей, используется для конференций, симпозиумов и т.д.;
  5. функциональный бот, выполняющий широкий спектр услуг, например, продающий товары, обучающий чему-либо, рекламирующий и т.д.

Создание бота в Telegram подразумевает взаимодействие с @BotFather. Это технология, позволяющая создать и зарегистрировать своего уникального бота в мессенджере Telegram. Взаимодействие осуществляется с помощью команд. Так, c помощью команды /newbot запускается процесс создания нового бота, для этого необходимо зарегистрировать его имя, которое будет отображаться в чатах и контактах. Необходимо задать уникальный username, который состоит из букв латинского алфавита, может включать цифры и символ подчеркивания, должен оканчиваться на «bot». После регистрации уникального имени бота пользователь получает сообщение с токеном, который необходим для дальнейшей работы с API. С помощью @BotFather также можно настроить аватар или логотип и описание бота.

Разработан программный продукт «InstaReminder» — бот для установки напоминаний о публикации контента в Instagram. Кодовая часть реализована на платформе Node.js с использованием библиотек «Telegraph», «nedb» [5].

Схема алгоритма работы бота, отображающая структуру команд и их последовательность, представлена на рис. 2.

Схема алгоритма работы бота «InstaReminder»

Рис. 2 - Схема алгоритма работы бота «InstaReminder»

Взаимодействие бота и пользователя отображается в интерфейсе. На начальном этапе показаны: приветственное сообщение и краткое описание, отражающее суть основного функционала, а также установлен логотип. В аккаунте бота представлено его название, имя пользователя @InstaReminder_bot, описание и логотип. Интерфейс и аккаунт изображены на рис. 3.

Страница начала работы и аккаунт бота «InstaReminder»

Рис. 3 - Страница начала работы и аккаунт бота «InstaReminder»

Функционал бота состоит из команд:

  1. /start — отправка пользователю списка команд и их расшифровки;
  2. /help — повторный вызов сообщения с функционалом бота и инструкцией;
  3. /new — команда для установки напоминания. В ответ на неё бот отправляет сообщение с текстом «О чем вам напомнить?» с тремя кнопками «Пост», «Сторис», «Другое». При нажатии кнопки «Пост» и «Сторис» бот задает вопрос «Когда вам напомнить?» и уточняет, что отправлять время и дату для установки напоминания необходимо в формате [00:00 01.01.2021]. Далее, после отправки даты и времени, бот заносит полученные данные и текст напоминания в базу данных, откуда потом присылает необходимую информацию обратно в тело диалога. Команда, отправленная боту в формате «/new [текст напоминания] в [00:00 01.01.2021]», отвечает за создание нового напоминания. Обработчик события отвечает за установку напоминания и занесение в базу данных информации: уникальный идентификатор, id пользователя, дату, время напоминания и его текст. Уникальный идентификатор, который присваивается каждому установленному напоминанию, генерируется с помощью метода Date.now(). Он возвращает значение в виде числа, равного количеству миллисекунд, прошедших с 1 января 1970 года 00:00:00 по текущий момент времени, что обеспечивает его уникальность. Взаимодействие с командой /new в диалоге с ботом представлено на рис. 4.
  4. /list — команда для отображения текущих установленных напоминаний. Содержит условный оператор if, который проверяет, содержатся ли в базе какие-либо данные. Если да, то по идентификатору пользователя определятся необходимый диалог и присылается напоминание в формате [идентификатор] [текст напоминания] в [00:00 01.01.2021], в противном случае бот отправляет сообщение с текстом «Нет действующих напоминаний». На рис. 5 показано взаимодействие в теле диалога с командой /list.
  5. /del [идентификатор напоминания 1], [идентификатор напоминания 2], ... [идентификатор напоминания n] — команда для удаления установленных напоминаний. Из отправленной пользователем строки с идентификаторами формируется массив, затем в базе данных осуществляется поиск и удаление всех совпадающих идентификаторов. В тело диалога возвращается сообщение с текстом «Удалено!».
Работа команды /new

Рис. 4 - Работа команды /new

Взаимодействие с командой /list

Рис. 5 - Взаимодействие с командой /list

Заключение

Разработанный программный продукт — бот «InstaReminder» является самостоятельным сервисом, который может быть использован для установки произвольных напоминаний. Возможность добавлять напоминания о публикации контента в Instagram делает бота удобным инструментом для SMM-маркетологов и пользователей социальной сети, помогающим поддерживать регулярность публикаций. В дальнейшем развитие проекта может быть связано с добавлением мультиязычности, поддержки различных часовых поясов и возможности монетизации по желанию пользователя.

Литература

  1. Что такое мессенджер? / Про мессенджеры: [сайт]. — URL: https://aboutmessengers.ru/messendzher-chto-eto-takoe/ (дата обращения: 01.10.2021).
  2. Александр Марфитсин. 20 лет истории ICQ: от быстрого роста и продажи AOL до потери аудитории и сделки с Mail.Ru Group / vc.ru: [сайт]. — URL: https://vc.ru/social/19936-icq-history (дата обращения: 29.09.2021).
  3. Инди Гогохия. Добавь клиента в друзья. Продвижение в Telegram, WhatsApp, Skype и других мессенджерах / Инди Гогохия. — Москва: Эксмо, 2018. — 230 с.
  4. Шуйский, А. Telegram-боты в бизнесе: примеры использования / Портал Cossa: [сайт]. — URL: https://www.cossa.ru/trends/224036/ (дата обращения: 03.10.2021).
  5. Сухов, К. К. Node.js. Путеводитель по технологии / К. К. Сухов. — Москва: ДМК, 2015.— 416 с.