in whatsapp/src/main/java/org/apache/camel/example/whatsapp/WhatsappRouteBuilder.java [26:52]
public void configure() {
restConfiguration().port(8080);
// Send custom message
from("direct:start")
.toF("whatsapp:%s/?authorizationToken=%s", Application.PHONE_NUMBER_ID, Application.AUTHORIZATION_TOKEN);
// Echo to a message sent from the number
fromF("webhook:whatsapp:%s?authorizationToken=%s&webhookVerifyToken=%s", Application.PHONE_NUMBER_ID, Application.AUTHORIZATION_TOKEN, Application.WEBHOOK_VERIFY_TOKEN)
.log("${body}")
.choice().when().jsonpath("$.entry[0].changes[0].value.messages", true)
.setHeader("CamelWhatsappBody").jsonpath("$.entry[0].changes[0].value.messages[0].text.body")
.setHeader("CamelWhatsappSentMessage").jsonpath("$.entry[0].changes[0].value.contacts[0].profile.name")
.setHeader("CamelWhatsappPhoneNumber").jsonpath("$.entry[0].changes[0].value.contacts[0].wa_id")
.process(exchange -> {
TextMessageRequest request = new TextMessageRequest();
request.setTo(exchange.getIn().getHeader("CamelWhatsappPhoneNumber").toString());
request.setText(new TextMessage());
request.getText().setBody(String.format("Hello %s message sent was %s",
exchange.getIn().getHeader("CamelWhatsappSentMessage"),
exchange.getIn().getHeader("CamelWhatsappBody")));
exchange.getIn().setBody(request);
})
.toF("whatsapp:%s/?authorizationToken=%s", Application.PHONE_NUMBER_ID, Application.AUTHORIZATION_TOKEN)
.end();
}