Skip to content

Commit 1e8a236

Browse files
authored
Merge pull request #158 from olimpias/add-example-hsm-media-templates
Add example for HSM media template
2 parents 8f87cf3 + e308ca0 commit 1e8a236

File tree

3 files changed

+152
-5
lines changed

3 files changed

+152
-5
lines changed

api/src/main/java/com/messagebird/objects/conversations/MessageComponent.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,17 @@
44

55
public class MessageComponent {
66

7-
private String type;
7+
private MessageComponentType type;
88
private String sub_type;
99
private int index;
1010
private List<MessageParam> parameters;
1111

12-
public String getType() {
13-
return type;
12+
public void setType(MessageComponentType type) {
13+
this.type = type;
1414
}
1515

16-
public void setType(String type) {
17-
this.type = type;
16+
public MessageComponentType getType() {
17+
return type;
1818
}
1919

2020
public String getSub_type() {
Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
package com.messagebird.objects.conversations;
2+
3+
import com.fasterxml.jackson.annotation.JsonCreator;
4+
import com.fasterxml.jackson.annotation.JsonValue;
5+
6+
public enum MessageComponentType {
7+
8+
HEADER("header"),
9+
BODY("body"),
10+
FOOTER("footer"),
11+
BUTTONS("buttons");
12+
13+
14+
private final String type;
15+
16+
MessageComponentType(final String type) {
17+
this.type = type;
18+
}
19+
20+
@JsonCreator
21+
public static MessageComponentType forValue(String value) {
22+
for (MessageComponentType componentType: MessageComponentType.values()) {
23+
if (componentType.getType().equals(value)) {
24+
return componentType;
25+
}
26+
}
27+
28+
return null;
29+
}
30+
31+
@JsonValue
32+
public String toJson() {
33+
return getType();
34+
}
35+
36+
public String getType() {
37+
return type;
38+
}
39+
40+
@Override
41+
public String toString() {
42+
return getType();
43+
}
44+
}
Lines changed: 103 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,103 @@
1+
import com.messagebird.MessageBirdClient;
2+
import com.messagebird.MessageBirdService;
3+
import com.messagebird.MessageBirdServiceImpl;
4+
import com.messagebird.exceptions.GeneralException;
5+
import com.messagebird.exceptions.UnauthorizedException;
6+
import com.messagebird.objects.conversations.ConversationContent;
7+
import com.messagebird.objects.conversations.ConversationContentHsm;
8+
import com.messagebird.objects.conversations.ConversationContentType;
9+
import com.messagebird.objects.conversations.ConversationHsmLanguage;
10+
import com.messagebird.objects.conversations.ConversationSendRequest;
11+
import com.messagebird.objects.conversations.ConversationSendResponse;
12+
import com.messagebird.objects.conversations.Media;
13+
import com.messagebird.objects.conversations.MessageComponent;
14+
import com.messagebird.objects.conversations.MessageComponentType;
15+
import com.messagebird.objects.conversations.MessageParam;
16+
import com.messagebird.objects.conversations.TemplateMediaType;
17+
import java.util.ArrayList;
18+
import java.util.List;
19+
20+
public class ExampleConversationSendHSMMediaTemplate {
21+
22+
// Reference Example: https://developers.messagebird.com/quickstarts/whatsapp/send-media-template-message/
23+
public static void main(String[] args) {
24+
25+
if (args.length < 4) {
26+
System.out.println("Please at least specify your access key, the channel id and destination address.\n" +
27+
"Usage : java -jar <this jar file> test_accesskey(Required) channel_id(Required) from(Required) to(Required)");
28+
return;
29+
}
30+
31+
//First create your service object
32+
final MessageBirdService wsr = new MessageBirdServiceImpl(args[0]);
33+
//Add the service to the client
34+
final MessageBirdClient messageBirdClient = new MessageBirdClient(wsr);
35+
36+
37+
ConversationContent conversationContent = new ConversationContent();
38+
ConversationContentHsm conversationContentHsm = new ConversationContentHsm();
39+
conversationContentHsm.setNamespace("20332cd4_f095_b080_d255_35677159aaff");
40+
conversationContentHsm.setTemplateName("33172012024_ship_img_but_1");
41+
ConversationHsmLanguage language = new ConversationHsmLanguage();
42+
language.setCode("en");
43+
conversationContentHsm.setLanguage(language);
44+
List<MessageComponent> messageComponents = new ArrayList<>();
45+
//Define header component with image
46+
MessageComponent messageHeaderComponent = new MessageComponent();
47+
messageHeaderComponent.setType(MessageComponentType.HEADER);
48+
MessageParam imageParam = new MessageParam();
49+
Media media = new Media();
50+
media.setUrl("https://i.ytimg.com/vi/3fDoOw4lIeU/maxresdefault.jpg");
51+
imageParam.setImage(media);
52+
imageParam.setType(TemplateMediaType.IMAGE);
53+
List<MessageParam> messageHeaderParams = new ArrayList<>();
54+
messageHeaderParams.add(imageParam);
55+
messageHeaderComponent.setParameters(messageHeaderParams);
56+
//Define body component with texts
57+
MessageComponent messageBodyComponent = new MessageComponent();
58+
messageBodyComponent.setType(MessageComponentType.BODY);
59+
List<MessageParam> messageBodyParams = new ArrayList<>();
60+
messageBodyComponent.setParameters(messageBodyParams);
61+
MessageParam firstText = new MessageParam();
62+
firstText.setType(TemplateMediaType.TEXT);
63+
firstText.setText("John");
64+
messageBodyParams.add(firstText);
65+
66+
MessageParam secondText = new MessageParam();
67+
secondText.setType(TemplateMediaType.TEXT);
68+
secondText.setText("MB93824");
69+
messageBodyParams.add(secondText);
70+
71+
MessageParam thirdText = new MessageParam();
72+
thirdText.setType(TemplateMediaType.TEXT);
73+
thirdText.setText("2 days");
74+
messageBodyParams.add(thirdText);
75+
76+
MessageParam fourthText = new MessageParam();
77+
fourthText.setType(TemplateMediaType.TEXT);
78+
fourthText.setText("MessageBird");
79+
messageBodyParams.add(fourthText);
80+
81+
messageComponents.add(messageHeaderComponent);
82+
messageComponents.add(messageBodyComponent);
83+
conversationContentHsm.setComponents(messageComponents);
84+
conversationContent.setHsm(conversationContentHsm);
85+
ConversationSendRequest request = new ConversationSendRequest(
86+
args[2],
87+
ConversationContentType.HSM,
88+
conversationContent,
89+
args[1],
90+
"",
91+
null,
92+
null,
93+
null);
94+
95+
try {
96+
ConversationSendResponse sendResponse = messageBirdClient.sendMessage(request);
97+
System.out.println(sendResponse.toString());
98+
99+
} catch (GeneralException | UnauthorizedException exception) {
100+
exception.printStackTrace();
101+
}
102+
}
103+
}

0 commit comments

Comments
 (0)