From e308ca022156766540587d72897f81859854d618 Mon Sep 17 00:00:00 2001 From: cemturker Date: Tue, 14 Sep 2021 13:47:37 +0300 Subject: [PATCH] Add example for HSM media template --- .../conversations/MessageComponent.java | 10 +- .../conversations/MessageComponentType.java | 44 ++++++++ ...ampleConversationSendHSMMediaTemplate.java | 103 ++++++++++++++++++ 3 files changed, 152 insertions(+), 5 deletions(-) create mode 100644 api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java create mode 100644 examples/src/main/java/ExampleConversationSendHSMMediaTemplate.java diff --git a/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java b/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java index 22081acb..9dd25b3a 100644 --- a/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java +++ b/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java @@ -4,17 +4,17 @@ public class MessageComponent { - private String type; + private MessageComponentType type; private String sub_type; private int index; private List parameters; - public String getType() { - return type; + public void setType(MessageComponentType type) { + this.type = type; } - public void setType(String type) { - this.type = type; + public MessageComponentType getType() { + return type; } public String getSub_type() { diff --git a/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java b/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java new file mode 100644 index 00000000..073b5735 --- /dev/null +++ b/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java @@ -0,0 +1,44 @@ +package com.messagebird.objects.conversations; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonValue; + +public enum MessageComponentType { + + HEADER("header"), + BODY("body"), + FOOTER("footer"), + BUTTONS("buttons"); + + + private final String type; + + MessageComponentType(final String type) { + this.type = type; + } + + @JsonCreator + public static MessageComponentType forValue(String value) { + for (MessageComponentType componentType: MessageComponentType.values()) { + if (componentType.getType().equals(value)) { + return componentType; + } + } + + return null; + } + + @JsonValue + public String toJson() { + return getType(); + } + + public String getType() { + return type; + } + + @Override + public String toString() { + return getType(); + } +} diff --git a/examples/src/main/java/ExampleConversationSendHSMMediaTemplate.java b/examples/src/main/java/ExampleConversationSendHSMMediaTemplate.java new file mode 100644 index 00000000..3f495aee --- /dev/null +++ b/examples/src/main/java/ExampleConversationSendHSMMediaTemplate.java @@ -0,0 +1,103 @@ +import com.messagebird.MessageBirdClient; +import com.messagebird.MessageBirdService; +import com.messagebird.MessageBirdServiceImpl; +import com.messagebird.exceptions.GeneralException; +import com.messagebird.exceptions.UnauthorizedException; +import com.messagebird.objects.conversations.ConversationContent; +import com.messagebird.objects.conversations.ConversationContentHsm; +import com.messagebird.objects.conversations.ConversationContentType; +import com.messagebird.objects.conversations.ConversationHsmLanguage; +import com.messagebird.objects.conversations.ConversationSendRequest; +import com.messagebird.objects.conversations.ConversationSendResponse; +import com.messagebird.objects.conversations.Media; +import com.messagebird.objects.conversations.MessageComponent; +import com.messagebird.objects.conversations.MessageComponentType; +import com.messagebird.objects.conversations.MessageParam; +import com.messagebird.objects.conversations.TemplateMediaType; +import java.util.ArrayList; +import java.util.List; + +public class ExampleConversationSendHSMMediaTemplate { + + // Reference Example: https://developers.messagebird.com/quickstarts/whatsapp/send-media-template-message/ + public static void main(String[] args) { + + if (args.length < 4) { + System.out.println("Please at least specify your access key, the channel id and destination address.\n" + + "Usage : java -jar test_accesskey(Required) channel_id(Required) from(Required) to(Required)"); + return; + } + + //First create your service object + final MessageBirdService wsr = new MessageBirdServiceImpl(args[0]); + //Add the service to the client + final MessageBirdClient messageBirdClient = new MessageBirdClient(wsr); + + + ConversationContent conversationContent = new ConversationContent(); + ConversationContentHsm conversationContentHsm = new ConversationContentHsm(); + conversationContentHsm.setNamespace("20332cd4_f095_b080_d255_35677159aaff"); + conversationContentHsm.setTemplateName("33172012024_ship_img_but_1"); + ConversationHsmLanguage language = new ConversationHsmLanguage(); + language.setCode("en"); + conversationContentHsm.setLanguage(language); + List messageComponents = new ArrayList<>(); + //Define header component with image + MessageComponent messageHeaderComponent = new MessageComponent(); + messageHeaderComponent.setType(MessageComponentType.HEADER); + MessageParam imageParam = new MessageParam(); + Media media = new Media(); + media.setUrl("https://i.ytimg.com/vi/3fDoOw4lIeU/maxresdefault.jpg"); + imageParam.setImage(media); + imageParam.setType(TemplateMediaType.IMAGE); + List messageHeaderParams = new ArrayList<>(); + messageHeaderParams.add(imageParam); + messageHeaderComponent.setParameters(messageHeaderParams); + //Define body component with texts + MessageComponent messageBodyComponent = new MessageComponent(); + messageBodyComponent.setType(MessageComponentType.BODY); + List messageBodyParams = new ArrayList<>(); + messageBodyComponent.setParameters(messageBodyParams); + MessageParam firstText = new MessageParam(); + firstText.setType(TemplateMediaType.TEXT); + firstText.setText("John"); + messageBodyParams.add(firstText); + + MessageParam secondText = new MessageParam(); + secondText.setType(TemplateMediaType.TEXT); + secondText.setText("MB93824"); + messageBodyParams.add(secondText); + + MessageParam thirdText = new MessageParam(); + thirdText.setType(TemplateMediaType.TEXT); + thirdText.setText("2 days"); + messageBodyParams.add(thirdText); + + MessageParam fourthText = new MessageParam(); + fourthText.setType(TemplateMediaType.TEXT); + fourthText.setText("MessageBird"); + messageBodyParams.add(fourthText); + + messageComponents.add(messageHeaderComponent); + messageComponents.add(messageBodyComponent); + conversationContentHsm.setComponents(messageComponents); + conversationContent.setHsm(conversationContentHsm); + ConversationSendRequest request = new ConversationSendRequest( + args[2], + ConversationContentType.HSM, + conversationContent, + args[1], + "", + null, + null, + null); + + try { + ConversationSendResponse sendResponse = messageBirdClient.sendMessage(request); + System.out.println(sendResponse.toString()); + + } catch (GeneralException | UnauthorizedException exception) { + exception.printStackTrace(); + } + } +}