Получение и обработка сообщений на 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 |