API de WhatsApp con Java
Con java.net.http.HttpClient, incluido desde Java 11. Sin dependencias.
Requisitos
- Java 11 o superior
- Tu API key y tu número conectado
Enviar un mensaje
En un proyecto real arma el JSON con Jackson o Gson para escapar bien el texto.
import java.net.URI;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.time.Duration;
public class EnviarWhatsapp {
public static void main(String[] args) throws Exception {
String json = "{"
+ "\"api_key\":\"" + System.getenv("WSP_API_KEY") + "\","
+ "\"sender\":\"51999888777\","
+ "\"number\":\"51987654321\","
+ "\"message\":\"Hola desde Java\""
+ "}";
HttpRequest peticion = HttpRequest.newBuilder()
.uri(URI.create("https://api.kontacto.pro/send-message"))
.timeout(Duration.ofSeconds(30))
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(json))
.build();
HttpResponse<String> respuesta = HttpClient.newHttpClient()
.send(peticion, HttpResponse.BodyHandlers.ofString());
System.out.println(respuesta.statusCode() + " " + respuesta.body());
}
}
Con Spring Boot
RestClient (Spring 6.1+) convierte el Map a JSON.
RestClient cliente = RestClient.create("https://api.kontacto.pro");
Map<String, Object> respuesta = cliente.post()
.uri("/send-message")
.contentType(MediaType.APPLICATION_JSON)
.body(Map.of(
"api_key", apiKey,
"sender", "51999888777",
"number", "51987654321",
"message", "Hola desde Spring Boot"))
.retrieve()
.body(new ParameterizedTypeReference<>() {});
Todos los endpoints, parámetros y errores están en la documentación de la API.
¿Y el webhook en Java?
Es un endpoint POST (por ejemplo un @PostMapping en Spring) que lee el JSON entrante y devuelve otro JSON con text, o una respuesta vacía.
Envía tu primer mensaje hoy
Escríbenos por WhatsApp, conectamos tu número con un QR y te damos tu API key para que pruebes desde tu sistema.