Check out and combine these 2 dev guide examples:
- Authorization flow
- Webhooks
See the sample code below where I added the "/subscribe" case to handle webhook subscription.
case "/test":
String api = request.getParameter("api");
String result = "";
switch (api) {
case "extension":
result = JSON.toJSONString(rc.restapi().account().extension().list(), SerializerFeature.PrettyFormat);
break;
case "extension-call-log":
result = JSON.toJSONString(rc.restapi().account().extension().calllog().list(), SerializerFeature.PrettyFormat);
break;
case "account-call-log":
result = JSON.toJSONString(rc.restapi().account().calllog().list(), SerializerFeature.PrettyFormat);
break;
}
response.getWriter().println("<pre>" + result + "</pre>");
break;
case "/subscribe":
String result = "";
var eventFilters = new String[]{
"/restapi/v1.0/account/~/extension/~/message-store/instant?type=SMS"
}
CreateSubscriptionRequest createSubscriptionRequest = new CreateSubscriptionRequest()
.eventFilters(eventFilters)
.deliveryMode( new NotificationDeliveryModeRequest()
.transportType("WebHook")
.address(DELIVERY_ADDRESS)
);
var result = rc.restapi().subscription().post(createSubscriptionRequest);