Как запустить веб-сервер#
Импорт#
Maven
<dependency>
<groupId>com.green-api</groupId>
<artifactId>whatsapp-api-webhook-server-java</artifactId>
<version>{{version}}</version>
</dependency>
Gradle
implementation group: 'com.green-api', name: 'whatsapp-api-webhook-server-java', version: '0.0.1'
Примеры#
Как инициализировать объект#
Установите параметры сервера в application.yml
. Атрибут WebhookToken является опциональным.
green-api:
webhookToken: 1a2b3c4d5e
server:
port: 8080
Как запустить веб-сервер#
Приложения начнет слушать порт, сразу после запуска метода main
, для этого не забудьте поставить аннотацию @ComponentScan(basePackages = "com.greenapi.server")
.
Ссылка на пример: WhatsappApiServerExample.java.
@SpringBootApplication
@ComponentScan(basePackages = "com.greenapi.server")
public class WhatsappApiServerExample {
public static void main(String[] args) {
SpringApplication.run(WhatsappApiServerExample.class, args);
}
}
Класс функции-обработчика должен имплементировать интерфейс WebhookHandler
и быть бином. Для этого установите аннотацию @Component(value = "whatsappWebhookHandler")
над классом функции-обработчика.
Ссылка на пример: WebhookHandlerExample.java.
@Component(value = "whatsappWebhookHandler")
public class WebhookHandlerExample implements WebhookHandler {
@SneakyThrows
@Override
public void handle(Notification notification) {
System.out.println("START " + notification);
Thread.sleep(20000);
System.out.println("END " + notification);
}
}
При получении нового уведомления ваша функция-обработчик handle()
будет выполнена асинхронно. Мы рекомендуем обрабатывать уведомления асинхронно, так как они настроены на таймаут, при долгом получении статус кода 200. После таймаута вторая попытка происходит не сразу, что может послужить причиной долгой обработки уведомлений и увеличения очереди сообщений.
Запуск приложения#
Для JAR-файла:
java -jar ваше_приложение.jar
Если используется Maven запустите из директории проекта:
./mvnw spring-boot:run