Тем, кто так или иначе уже сталкивался с разработкой Telegram-ботов на java, известно, что бот должен уметь отправлять запросы Telegram-серверу и получать от него обновления (updates). В настоящее время существует два способа получения обновлений:
- использование LongPolling (регулярную отправку запрос к серверу Telegram для получения обновлений. Все обновления обрабатываются последовательно, что делает бота очень простым для отладки, а все поведение - предсказуемым),
- использование Webhooks (Telegram сам отправляет запросы по нужному URL).
Поскольку LongPolling используется по умолчанию, я буду рассматривать взаимодействие с ботом на его примере.
Итак, для того, чтобы класс, содержащий логику бота, реализовывал взаимодействие с сервисами Telegram, его необходимо унаследовать от класса TelegramLongPollingBot и реализовать следующие его базовые методы:
- public void onUpdateReceived(Update update);
- public String getBotUsername();
- public String getBotToken().
Каждый раз, когда кто-то отправляет личное сообщение боту, этот метод будет вызываться автоматически, и вы сможете обработать параметр, который содержит сообщение, а также множество другой информации.