Получение и обработка сообщений на Java#
Установка#
Перед началом необходимо установить библиотеку и сконфигурировать бота, подробно этот процесс описан здесь: Как импортировать библиотеку и сконфигурировать своего бота.
Как начать получать сообщения и отвечать на них#
После того как вы установили библиотеку и сконфигурировали бота, необходимо создать первую сцену. Для этого создайте класс, который наследуется от Scene
и переопределите метод-обработчик нужного типа. Чаще всего вам будет нужен processIncomingMessage()
который обрабатывает вебхуки о входящих сообщениях. Придумайте для класса понятное название, стартовые сцены рекомендую помечать постфиксом StartScene
.
Метод processIncomingMessage()
, как и другие обработчики возвращает обновленное состояние бота. В случае если состояние не поменялось, достаточно вернуть объект currentState
.
Ссылка на пример: BaseStartScene.java.
public class BaseStartScene extends Scene {
@Override
public State processIncomingMessage(MessageWebhook incomingMessage, State currentState) {
answerWithText(incomingMessage, "Hello!", "message");
return currentState;
}
}
Чтобы запустить бота, нужно вызвать функцию bot.startReceivingNotifications();
. В этом примере бот имеет только одну сцену и ответит только на сообщение message
.
Ссылка на пример: BotStarterClassExample.java.
@SpringBootApplication
public class BotStarterClassExample {
public static void main(String[] args) {
var context = SpringApplication.run(BotStarterClassExample.class, args);
var botFactory = context.getBean(BotFactory.class);
var bot = botFactory.createBot(
"{{instanceId}}",
"{{token}}",
new HandlerExample(),
new BaseStartScene());
bot.startReceivingNotifications();
}
}
Список примеров#
Описание | Ссылка на пример |
---|---|
Как инициализировать объект | BotStarterClassExample.java |
Сцена "Привет" | BaseStartScene.java |
Сцена "Эхо" | EchoStartScene.java |
Как получать другие типы уведомлений | EventStartScene.java |
Как фильтровать входящие сообщения | FiltersStartScene.java |
Как обрабатывать тело уведомлений | MediaStartScene.java |
Как работать с состоянием бота | state |
Пример готового чат бота | full |