-
Notifications
You must be signed in to change notification settings - Fork 2
TelegramBot‐tech
Roman Kuzmin edited this page Feb 17, 2025
·
3 revisions
Бот Telegram интегрирован с системой StarBank и позволяет пользователям получать персонализированные банковские рекомендации.
- TelegramBot – основной обработчик сообщений.
- BotService – сервис отправки сообщений и работы с API рекомендаций.
-
Обработчики (
BotHandler) отвечают за обработку команд. - API интеграция позволяет получать рекомендации пользователей.
Бот реализует обработку команд и взаимодействие с системой рекомендаций через API. Основные функции:
- Обработка команд
/start,/help,/recommend. - Взаимодействие с сервисом рекомендаций.
- Логирование работы бота.
Файл: TelegramBot.java
Описание:
- Основной обработчик сообщений Telegram.
- Направляет команды соответствующим обработчикам (
BotHandler). - Обрабатывает входящие сообщения и вызывает
handleMessage().
Методы:
@Override
public void onUpdateReceived(Update update);Описание:
- Получает обновления из Telegram.
- Определяет команду пользователя.
- Передает команду соответствующему
BotHandler.
@EventListener
public void handleTelegramMessageEvent(TelegramMessageEvent event);Описание:
- Отправляет сообщения в Telegram через
TelegramMessageEvent. - Используется для обработки событий, связанных с отправкой сообщений пользователю.
Файл: BotService.java
Описание:
- Интерфейс для взаимодействия с Telegram Bot.
Методы:
void sendMessage(long chatId, String text);- Отправляет текстовое сообщение пользователю по
chatId.
String getBotRecommendationByUsername(String username);- Получает рекомендации по имени пользователя, обращаясь к сервису рекомендаций.
List<String> giveMessageArguments(String messageText);- Разбирает текст сообщения, извлекая аргументы команды.
Файл: TelegramBotServiceImpl.java
Описание:
- Реализация сервиса бота.
- Получает рекомендации через
RecommendationService. - Формирует и отправляет ответ пользователю.
Методы:
public String getBotRecommendationByUsername(String username);- Выполняет запрос к сервису рекомендаций по имени пользователя.
- Возвращает сформированное сообщение с результатом.
public void sendMessage(long chatId, String text);- Создает и отправляет
SendMessageобъект в Telegram.
Файл: BotHandler.java
Описание:
- Интерфейс для обработчиков команд.
Методы:
void handleMessage(long chatId, String messageText) throws TelegramApiException;- Обрабатывает сообщение, полученное от пользователя.
- Может выбросить исключение
TelegramApiException, если обработка завершилась ошибкой.
String getDescription();- Возвращает текстовое описание команды.
String getCommand();- Возвращает ключевое слово команды.
Файл: RecommendationMessageHandler.java
Описание:
- Обрабатывает команду
/recommend. - Запрашивает рекомендации для пользователя и отправляет их в чат.
Методы:
@Override
public void handleMessage(long chatId, String messageText);- Извлекает имя пользователя из команды.
- Запрашивает рекомендации через
BotService. - Отправляет результат пользователю.
Файл: StartMessageHandler.java
Описание:
- Обрабатывает команду
/start. - Отправляет приветственное сообщение.
Методы:
@Override
public void handleMessage(long chatId, String messageText);- Отправляет приветственное сообщение пользователю с описанием возможностей бота.
Файл: HelpMessageHandler.java
Описание:
- Обрабатывает команду
/help. - Отправляет справку по командам.
Методы:
@Override
public void handleMessage(long chatId, String messageText) throws TelegramApiException;- Отправляет справку по доступным командам (
/start,/help,/recommend).