Integração

API de WhatsApp para Java e Spring

Integre WhatsApp em aplicações Java com o HttpClient nativo do JDK 11+.

import java.net.URI;
import java.net.http.*;
import java.time.Duration;

public class ZapixoClient {

    private static final HttpClient CLIENTE = HttpClient.newBuilder()
            .connectTimeout(Duration.ofSeconds(10))
            .build();

    private final String apiKey;

    public ZapixoClient(String apiKey) {
        this.apiKey = apiKey;
    }

    public String enviarTexto(String instancia, String numero, String texto)
            throws Exception {

        String corpo = """
                {"instance":"%s","number":"%s","text":"%s"}
                """.formatted(instancia, numero, escapar(texto));

        HttpRequest req = HttpRequest.newBuilder()
                .uri(URI.create("https://zapixo.com.br/api/v1/messages/text"))
                .header("Authorization", "Bearer " + apiKey)
                .header("Content-Type", "application/json")
                .timeout(Duration.ofSeconds(30))
                .POST(HttpRequest.BodyPublishers.ofString(corpo))
                .build();

        HttpResponse<String> res =
                CLIENTE.send(req, HttpResponse.BodyHandlers.ofString());

        if (res.statusCode() != 200) {
            throw new IllegalStateException(
                    "Zapixo " + res.statusCode() + ": " + res.body());
        }
        return res.body();
    }

    // em produção, use Jackson em vez de montar JSON na mão
    private static String escapar(String s) {
        return s.replace("\\", "\\\\").replace("\"", "\\\"");
    }
}