Разработка чат-бота Telegram для организации
Электронная торговая площадка специализируется на проведении государственных и коммерческих закупок, имущественных торгов, а также малых закупок. Процессы торгов достаточно сложны, требуют детальной проработки механизмов взаимодействия организаторов и поставщиков. Работа с платформой должна быть удобна и интуитивно-понятна, а оперативное получение информации о ходе закупок является неотъемлемой частью процесса.
Задача проекта
Проведение закупки это динамический процесс, который сопровождается постоянным изменением статусов и состояний. Все уведомления об изменениях, которыми система обменивается с и участниками торгов отправляются автоматически, делая коммуникацию своевременной и эффективной. Уведомления приходят на email, в личный кабинет, в мобильное приложение. Торговая площадка постоянно развивается, совершенствуя бизнес-процессы и систему оповещений. Одной из задач по модернизации стала необходимость расширения каналов получения уведомлений, делая их получение еще более оперативным, а систему еще более удобной. В качестве нового канала был выбран мессенджер Telegram - один из самых популярных и привычных пользователю сервисов быстрых сообщений.
Технологии
Были определены источники и их технические особенности, собраны и формализованы функциональные требования. В течение недели с момента начала работ было оформлено и согласовано детальное техническое задание, описывающее все стороны будущего проекта.
Бот предназначен только для пользователей -участников торговой площадки. Поэтому получить доступ к функциям может только зарегистрированный на площадке пользователь. Для этого в личном кабинете системы была предусмотрена специальная ссылка, содержащая информацию, позволяющую идентифицировать как пользователя, так и секцию площадки, в которой он принимает участие. В случае, если ссылка была использована не по назначению, бот ответит, что прав недостаточно, и предложит уточнить ссылку в личном кабинете или обратиться к администратору площадки. Если же пользователь успешно прошел авторизацию в мессенджере, бот его поприветствует и лаконично сообщит о своих возможностях. На текущем этапе разработки основная функция бота -отправка уведомлений. При попытке написать любое сообщение в чат с ботом, будет отправлен вежливый ответ о недоступности такой опции. В боте пользователь может получать уведомления двух типов:
- Уведомления, которые формируются на стороне платформы и передаются в бот посредством API. Пользователь может принимать участие в нескольких секциях торговой площадки одновременно, при этом для каждой секции формируется своя ссылка, перейдя по которой подписка на уведомления будет активирована.
- Уведомления, которые формирует и отправляет администратор бота со специального аккаунта.
Администрирование
Каждая система нуждается в управлении. В этом направлении для бота предусмотрены ряд настроек, а также роль администратора. Настройки бота хранятся в специальном конфигурационном файле, доступ к которому предоставлен ограниченному кругу лиц, работающих с платформой. Посредством файла можно управлять списком администраторов, настройкой отправки рассылки и др. Администратор бота, успешно авторизовавшись, может отправить пользовательскую рассылку или выгрузить файл статистики. Формирование рассылки включает несколько шагов:
- Выбор кнопки в футере бота.
- Ввод текстовой части рассылки - это может быть сообщение о проведении технических работ, поздравление с праздником или любое другое информационное сообщение.
- При необходимости прикрепить файл. Поддерживается прикрепление документов или изображений семи различных форматов размером не более 50МБ.
- Выбрать одну или несколько целевых секций для отправки.
- Подтвердить отправку. При этом у администратора есть возможность отменить рассылку в течение некоторого периода времени, по умолчанию это 300 секунд. Задать пользовательское значение тайм аута также можно через конфигурационный файл.
Кроме кнопки рассылки в футере интерфейса администратора есть кнопка Помощь и Статистика. При выборе последней, по указанному в конфигурационном файле пути на сервере будет выгружен актуальный на текущий момент файл статистики.
Статистика
В процессе работы бот сохраняет информацию о каждом отправленном уведомлении, включая user_name пользователя, текст сообщения, идентификатор секции, дату и время, а также статус отправки. Такая статистика может быть использована в качестве информационной базы для последующего анализа эффективности работы системы оповещений и бота в частности.
Интеграция
Работа бота тесно связана с платформой. Бот не только получает тексты уведомлений к отправке но и выполняет процессы идентификации пользователей посредством обмена данными. Функционал реализован при помощи REST API и состоит из таких опций как:
- Получение информации о тексте уведомления и адресатах рассылки.
- Управление списком секций и их названиями.
- Управление текстами сообщений в боте.
- Передача информации для проверки пользователя и др.
Выбранные подходы и средства реализации интеграции обеспечивают гибкость системы и эффективное взаимодействие ее компонентов.
Итоги
Проект разработан в установленные сроки и в полном соответствии с техническим заданием. Этап тестирования успешно пройден. Бот запущен в рабочий режим и отлично выполняет поставленные задачи. В последующем планируется разработка бота для мессенджеров Viber и WhatsApp.
Хотите разработать подобного чат-бота? Пишите нам в сообщения группы: