From 350009d6890fbc6218deec2a394851aa9c47c51e Mon Sep 17 00:00:00 2001 From: Alexander Levintsev <44775486+AlexL-mb@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:45:13 +0100 Subject: [PATCH 1/3] Added support for sending Carousel messages --- .../conversations/MessageComponent.java | 39 ++++++++++++++++++- .../conversations/MessageComponentType.java | 4 +- 2 files changed, 41 insertions(+), 2 deletions(-) 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 9dd25b3a..6bb9ca79 100644 --- a/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java +++ b/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java @@ -8,6 +8,10 @@ public class MessageComponent { private String sub_type; private int index; private List parameters; + private int card_index; + private List cards; + private MessageComponent card; + private List components; public void setType(MessageComponentType type) { this.type = type; @@ -41,13 +45,46 @@ public void setParameters(List parameters) { this.parameters = parameters; } + public void setCards(List cards) { + this.cards = cards; + } + + public List getCards() { + return cards; + } + + public int getCard_index() { + return card_index; + } + + public void setCard_index(int card_index) { + this.card_index = card_index; + } + + public MessageComponent getCard() { + return card; + } + + public void setCard(MessageComponent card) { + this.card = card; + } + + public List getComponents() { + return components; + } + + public void setComponents(List components) { + this.components = components; + } + @Override public String toString() { return "MessageComponent{" + "type='" + type + '\'' + ", sub_type='" + sub_type + '\'' + ", index=" + index + - ", parameters=" + parameters + + ", parameters=" + parameters + '\'' + + ", cards=" + cards + '}'; } } diff --git a/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java b/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java index 327525fd..c2be69bf 100644 --- a/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java +++ b/api/src/main/java/com/messagebird/objects/conversations/MessageComponentType.java @@ -8,7 +8,9 @@ public enum MessageComponentType { HEADER("header"), BODY("body"), FOOTER("footer"), - BUTTON("button"); + BUTTON("button"), + CARD("card"), + CAROUSEL("carousel"); private final String type; From 7eb58cae36872263c5b7a14ecc6e62a09287d4f9 Mon Sep 17 00:00:00 2001 From: Alexander Levintsev <44775486+AlexL-mb@users.noreply.github.com> Date: Thu, 7 Mar 2024 12:46:00 +0100 Subject: [PATCH 2/3] added sending carousel messages example --- ...ampleConversationSendCarouselTemplate.java | 116 ++++++++++++++++++ 1 file changed, 116 insertions(+) create mode 100644 examples/src/main/java/ExampleConversationSendCarouselTemplate.java diff --git a/examples/src/main/java/ExampleConversationSendCarouselTemplate.java b/examples/src/main/java/ExampleConversationSendCarouselTemplate.java new file mode 100644 index 00000000..f386917d --- /dev/null +++ b/examples/src/main/java/ExampleConversationSendCarouselTemplate.java @@ -0,0 +1,116 @@ +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.*; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class ExampleConversationSendCarouselTemplate { + + public static void main(String[] args) { + + if (args.length < 3) { + 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) 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("c663a566_a4de_492f_86b2_028cbf612345"); + conversationContentHsm.setTemplateName("carousel_template_test_hello"); + ConversationHsmLanguage language = new ConversationHsmLanguage(); + language.setCode("en_US"); + conversationContentHsm.setLanguage(language); + + + +// card0 components + List card0Components = new ArrayList<>(); +// card0 header + MessageComponent card0HeaderComponent = new MessageComponent(); + card0HeaderComponent.setType(MessageComponentType.HEADER); + MessageParam imageParam = new MessageParam(); + imageParam.setType(TemplateMediaType.IMAGE); + Media media = new Media(); + media.setUrl("https://upload.wikimedia.org/wikipedia/commons/f/f9/Phoenicopterus_ruber_in_S%C3%A3o_Paulo_Zoo.jpg"); + imageParam.setImage(media); + card0HeaderComponent.setParameters(Collections.singletonList(imageParam)); + card0Components.add(card0HeaderComponent); +// card0 body + MessageComponent card0BodyComponent = new MessageComponent(); + card0BodyComponent.setType(MessageComponentType.BODY); + MessageParam textParam = new MessageParam(); + textParam.setType(TemplateMediaType.TEXT); + textParam.setText("dummy text"); + card0BodyComponent.setParameters(Collections.singletonList(textParam)); + card0Components.add(card0BodyComponent); +// card0 button + MessageComponent card0ButtonComponent = new MessageComponent(); + card0ButtonComponent.setType(MessageComponentType.BUTTON); + card0ButtonComponent.setSub_type("quick_reply"); + card0ButtonComponent.setIndex(0); + MessageParam buttonParam = new MessageParam(); + buttonParam.setType(TemplateMediaType.PAYLOAD); + buttonParam.setPayload("dummy button"); + card0ButtonComponent.setParameters(Collections.singletonList(buttonParam)); + card0Components.add(card0ButtonComponent); + +// card0 + MessageComponent card0 = new MessageComponent(); + card0.setType(MessageComponentType.CARD); + card0.setCard_index(0); + card0.setComponents(card0Components); + + +// cards list + List cards = new ArrayList<>(); + cards.add(card0); + +// carousel component + MessageComponent carousel = new MessageComponent(); + carousel.setType(MessageComponentType.CAROUSEL); + carousel.setCards(cards); +// body component + MessageComponent body = new MessageComponent(); + body.setType(MessageComponentType.BODY); + MessageParam bodyParam = new MessageParam(); + bodyParam.setType(TemplateMediaType.TEXT); + bodyParam.setText("Jackson"); + body.setParameters(Collections.singletonList(bodyParam)); + +// set components to message + List messageComponents = new ArrayList<>(); + messageComponents.add(body); + messageComponents.add(carousel); + 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(); + } + } +} From 90e1840c8a3413c1a85ad3a96ec238bb5f3bbbae Mon Sep 17 00:00:00 2001 From: Alexander Levintsev <44775486+AlexL-mb@users.noreply.github.com> Date: Thu, 7 Mar 2024 13:08:01 +0100 Subject: [PATCH 3/3] removed unused private field card from MessageComponent --- .../objects/conversations/MessageComponent.java | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) 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 6bb9ca79..d3a7c20b 100644 --- a/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java +++ b/api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java @@ -10,7 +10,6 @@ public class MessageComponent { private List parameters; private int card_index; private List cards; - private MessageComponent card; private List components; public void setType(MessageComponentType type) { @@ -61,14 +60,6 @@ public void setCard_index(int card_index) { this.card_index = card_index; } - public MessageComponent getCard() { - return card; - } - - public void setCard(MessageComponent card) { - this.card = card; - } - public List getComponents() { return components; } @@ -82,8 +73,9 @@ public String toString() { return "MessageComponent{" + "type='" + type + '\'' + ", sub_type='" + sub_type + '\'' + - ", index=" + index + + ", index=" + index + '\'' + ", parameters=" + parameters + '\'' + + ", components=" + components + '\'' + ", cards=" + cards + '}'; }