[go: up one dir, main page]

Перейти к содержанию

Как начать получать сообщения и отвечать на них#

Установка#

Перед началом необходимо установить библиотеку и сконфигурировать бота, подробно этот процесс описан здесь: Как импортировать библиотеку и сконфигурировать своего бота.

Как начать получать сообщения и отвечать на них#

После того как вы установили библиотеку и сконфигурировали бота, необходимо создать первую сцену. Для этого создайте класс, который наследуется от 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