-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathInjectEvent.java
More file actions
81 lines (66 loc) · 3.14 KB
/
Copy pathInjectEvent.java
File metadata and controls
81 lines (66 loc) · 3.14 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
/**
* Sinch Java Snippet
*
* <p>This snippet is available at https://github.com/sinch/sinch-sdk-java
*
* <p>See https://github.com/sinch/sinch-sdk-java/blob/main/examples/snippets/README.md for details
*/
package conversation.conversations;
import com.sinch.sdk.SinchClient;
import com.sinch.sdk.domains.conversation.api.v1.ConversationsService;
import com.sinch.sdk.domains.conversation.models.v1.ChannelIdentity;
import com.sinch.sdk.domains.conversation.models.v1.ConversationChannel;
import com.sinch.sdk.domains.conversation.models.v1.ProcessingMode;
import com.sinch.sdk.domains.conversation.models.v1.conversations.request.InjectEventRequest;
import com.sinch.sdk.domains.conversation.models.v1.conversations.response.InjectEventResponse;
import com.sinch.sdk.domains.conversation.models.v1.events.AppEvent;
import com.sinch.sdk.domains.conversation.models.v1.events.types.GenericEvent;
import com.sinch.sdk.models.Configuration;
import com.sinch.sdk.models.ConversationRegion;
import java.time.Instant;
import java.util.HashMap;
import java.util.Map;
import java.util.logging.Logger;
import utils.Settings;
public class InjectEvent {
private static final Logger LOGGER = Logger.getLogger(InjectEvent.class.getName());
public static void main(String[] args) {
String projectId = Settings.getProjectId().orElse("MY_PROJECT_ID");
String keyId = Settings.getKeyId().orElse("MY_KEY_ID");
String keySecret = Settings.getKeySecret().orElse("MY_KEY_SECRET");
String conversationRegion = Settings.getConversationRegion().orElse("MY_CONVERSATION_REGION");
// The ID of the conversation to inject the event into
String conversationId = "CONVERSATION_ID";
// The channel to use for the recipient
ConversationChannel recipientChannel = ConversationChannel.SMS;
// The identity of the recipient (e.g. phone number for SMS)
String recipientPhoneNumber = "RECIPIENT_PHONE_NUMBER";
Configuration configuration =
Configuration.builder()
.setProjectId(projectId)
.setKeyId(keyId)
.setKeySecret(keySecret)
.setConversationRegion(ConversationRegion.from(conversationRegion))
.build();
SinchClient client = new SinchClient(configuration);
ConversationsService conversationsService = client.conversation().v1().conversations();
Map<String, String> map = new HashMap<>();
map.put("a property key", "a property value");
AppEvent event = GenericEvent.builder().setPayload(map).build();
InjectEventRequest request =
InjectEventRequest.builder()
.setAcceptTime(Instant.now())
.setAppEvent(event)
.setChannelIdentity(
ChannelIdentity.builder()
.setChannel(recipientChannel)
.setIdentity(recipientPhoneNumber)
.build())
.setConversationId(conversationId)
.setProcessingMode(ProcessingMode.CONVERSATION)
.build();
LOGGER.info("Inject event request: " + request);
InjectEventResponse response = conversationsService.injectEvent(conversationId, request);
LOGGER.info("Inject event response: " + response);
}
}