@Override public void run() { String appKey = ConfigReader.getProp("appKey"); String appSecret = ConfigReader.getProp("appSecret"); if (selector == null) { selector = Selectors.all(); } APIClient apiClient = APIClient.newBuilder().setKey(appKey).setSecret(appSecret).build(); Type badgetype = IOSBadgeData.Type.VALUE; if (badge == null || badge == 0) { badgetype = IOSBadgeData.Type.INCREMENT; badge = 1; } IOSBadgeData badgeData = IOSBadgeData.newBuilder().setValue(badge).setType(badgetype).build(); IOSDevicePayload iosPayload; AndroidDevicePayload androidPayload; if (entries != null) { iosPayload = IOSDevicePayload.newBuilder() .setAlert(message) .setBadge(badgeData) .setSound("default") .addAllExtraEntries(entries) .build(); androidPayload = AndroidDevicePayload.newBuilder().setAlert(message).addAllExtraEntries(entries).build(); } else { iosPayload = IOSDevicePayload.newBuilder() .setAlert(message) .setBadge(badgeData) .setSound("default") .build(); androidPayload = AndroidDevicePayload.newBuilder().setAlert(message).build(); } Notification notification = Notifications.notification(iosPayload, androidPayload); PushPayload payload = PushPayload.newBuilder() .setAudience(selector) .setNotification(notification) .setPlatforms(PlatformData.of(Platform.IOS, Platform.ANDROID)) .build(); try { APIClientResponse<APIPushResponse> response = apiClient.push(payload); System.out.println("Send the message"); System.out.println(response); } catch (APIRequestException ex) { System.out.println(String.format("APIRequestException " + ex)); System.out.println("EXCEPTION " + ex.toString()); APIError apiError = ex.getError().get(); System.out.println("Error " + apiError.getError()); if (apiError.getDetails().isPresent()) { APIErrorDetails apiErrorDetails = apiError.getDetails().get(); System.out.println("Error details " + apiErrorDetails.getError()); } } catch (IOException e) { System.out.println("IOException in API request " + e.getMessage()); } }