Skip to content

TelegramBot‐tech

Roman Kuzmin edited this page Feb 17, 2025 · 3 revisions

📌 Telegram Bot в проекте StarBank

🔹 Общая концепция

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

  • TelegramBot – основной обработчик сообщений.
  • BotService – сервис отправки сообщений и работы с API рекомендаций.
  • Обработчики (BotHandler) отвечают за обработку команд.
  • API интеграция позволяет получать рекомендации пользователей.

Бот реализует обработку команд и взаимодействие с системой рекомендаций через API. Основные функции:

  • Обработка команд /start, /help, /recommend.
  • Взаимодействие с сервисом рекомендаций.
  • Логирование работы бота.

🔹 Основные компоненты

📌 TelegramBot

Файл: TelegramBot.java

Описание:

  • Основной обработчик сообщений Telegram.
  • Направляет команды соответствующим обработчикам (BotHandler).
  • Обрабатывает входящие сообщения и вызывает handleMessage().

Методы:

@Override
public void onUpdateReceived(Update update);

Описание:

  • Получает обновления из Telegram.
  • Определяет команду пользователя.
  • Передает команду соответствующему BotHandler.
@EventListener
public void handleTelegramMessageEvent(TelegramMessageEvent event);

Описание:

  • Отправляет сообщения в Telegram через TelegramMessageEvent.
  • Используется для обработки событий, связанных с отправкой сообщений пользователю.

📌 BotService

Файл: BotService.java

Описание:

  • Интерфейс для взаимодействия с Telegram Bot.

Методы:

void sendMessage(long chatId, String text);
  • Отправляет текстовое сообщение пользователю по chatId.
String getBotRecommendationByUsername(String username);
  • Получает рекомендации по имени пользователя, обращаясь к сервису рекомендаций.
List<String> giveMessageArguments(String messageText);
  • Разбирает текст сообщения, извлекая аргументы команды.

📌 TelegramBotServiceImpl

Файл: TelegramBotServiceImpl.java

Описание:

  • Реализация сервиса бота.
  • Получает рекомендации через RecommendationService.
  • Формирует и отправляет ответ пользователю.

Методы:

public String getBotRecommendationByUsername(String username);
  • Выполняет запрос к сервису рекомендаций по имени пользователя.
  • Возвращает сформированное сообщение с результатом.
public void sendMessage(long chatId, String text);
  • Создает и отправляет SendMessage объект в Telegram.

🔹 Обработчики команд

📌 BotHandler

Файл: BotHandler.java

Описание:

  • Интерфейс для обработчиков команд.

Методы:

void handleMessage(long chatId, String messageText) throws TelegramApiException;
  • Обрабатывает сообщение, полученное от пользователя.
  • Может выбросить исключение TelegramApiException, если обработка завершилась ошибкой.
String getDescription();
  • Возвращает текстовое описание команды.
String getCommand();
  • Возвращает ключевое слово команды.

📌 RecommendationMessageHandler

Файл: RecommendationMessageHandler.java

Описание:

  • Обрабатывает команду /recommend.
  • Запрашивает рекомендации для пользователя и отправляет их в чат.

Методы:

@Override
public void handleMessage(long chatId, String messageText);
  • Извлекает имя пользователя из команды.
  • Запрашивает рекомендации через BotService.
  • Отправляет результат пользователю.

📌 StartMessageHandler

Файл: StartMessageHandler.java

Описание:

  • Обрабатывает команду /start.
  • Отправляет приветственное сообщение.

Методы:

@Override
public void handleMessage(long chatId, String messageText);
  • Отправляет приветственное сообщение пользователю с описанием возможностей бота.

📌 HelpMessageHandler

Файл: HelpMessageHandler.java

Описание:

  • Обрабатывает команду /help.
  • Отправляет справку по командам.

Методы:

@Override
public void handleMessage(long chatId, String messageText) throws TelegramApiException;
  • Отправляет справку по доступным командам (/start, /help, /recommend).

Clone this wiki locally