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

Как запустить веб-сервер#

Импорт#

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