diff --git a/pom.xml b/pom.xml index 0468026..353c7c7 100644 --- a/pom.xml +++ b/pom.xml @@ -66,6 +66,9 @@ 1.8 1.8 + + snippets/com/google/apis/*.java + @@ -152,4 +155,3 @@ 1.8 - diff --git a/snippets/com/google/apis/ReadReceiptSnippet.java b/snippets/com/google/apis/ReadReceiptSnippet.java new file mode 100644 index 0000000..94815b9 --- /dev/null +++ b/snippets/com/google/apis/ReadReceiptSnippet.java @@ -0,0 +1,77 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.BusinessMessagesReceipt; + +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +public class ReadReceiptSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try{ + String conversationId = "CONVERSATION_ID"; + String messageId = "MESSAGE_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a new read receipt + Businessmessages.Conversations.Messages.UpdateReceipt request + = builder.build().conversations().messages() + .updateReceipt("conversations/" + conversationId + "/messages/" + messageId + "/receipt", + new BusinessMessagesReceipt().setReceiptType("READ")); + + // Set up retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) request).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendAuthenticationRequestSuggestionSnippet.java b/snippets/com/google/apis/SendAuthenticationRequestSuggestionSnippet.java new file mode 100644 index 0000000..546c7ff --- /dev/null +++ b/snippets/com/google/apis/SendAuthenticationRequestSuggestionSnippet.java @@ -0,0 +1,89 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendAuthenticationRequestSuggestionSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a text message with an authentication request + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("Would you like to chat with a live agent?") + .setFallback("Would you like to chat with a live agent?") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setAuthenticationRequest(new BusinessMessagesAuthenticationRequest() + .setOauth(new BusinessMessagesAuthenticationRequestOauth() + .setClientId("CLIENT_ID") + .setCodeChallenge("CODE_CHALLENGE") + .setScopes(Arrays.asList("SCOPE")) + ))) + ) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendDialActionSnippet.java b/snippets/com/google/apis/SendDialActionSnippet.java new file mode 100644 index 0000000..add23cc --- /dev/null +++ b/snippets/com/google/apis/SendDialActionSnippet.java @@ -0,0 +1,87 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendDialActionSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a text message with a dial action + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("Contact support for help with this issue.") + .setFallback("Give us a call at +12223334444.") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setAction(new BusinessMessagesSuggestedAction() + .setText("Call support").setPostbackData("call-support") + .setDialAction( + new BusinessMessagesDialAction().setPhoneNumber("+12223334444")) + ))) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendImageMessageSnippet.java b/snippets/com/google/apis/SendImageMessageSnippet.java new file mode 100644 index 0000000..ceeb92b --- /dev/null +++ b/snippets/com/google/apis/SendImageMessageSnippet.java @@ -0,0 +1,86 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import com.google.communications.businessmessages.v1.MediaHeight; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendImageMessageSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create an Image + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setRepresentative(representative) + .setImage(new BusinessMessagesImage() + .setContentInfo( + new BusinessMessagesContentInfo() + .setFileUrl("FILE_URL") + .setAltText("ALT_TEXT") + .setForceRefresh("FORCE_REFRESH") + )); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendLiveAgentRequestSuggestionSnippet.java b/snippets/com/google/apis/SendLiveAgentRequestSuggestionSnippet.java new file mode 100644 index 0000000..afe9bc0 --- /dev/null +++ b/snippets/com/google/apis/SendLiveAgentRequestSuggestionSnippet.java @@ -0,0 +1,84 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendLiveAgentRequestSuggestionSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a text message with a live request action + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("Would you like to chat with a live agent?") + .setFallback("Would you like to chat with a live agent?") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setLiveAgentRequest(new BusinessMessagesLiveAgentRequest())) + ) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("BOT")); // Must be sent from a BOT representative + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendRichCardCarouselMessage.java b/snippets/com/google/apis/SendRichCardCarouselMessage.java new file mode 100644 index 0000000..2c4ee5d --- /dev/null +++ b/snippets/com/google/apis/SendRichCardCarouselMessage.java @@ -0,0 +1,108 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import com.google.communications.businessmessages.v1.MediaHeight; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendRichCardCarouselMessage { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a rich card with two suggested replies + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setFallback("Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"") + .setRichCard(new BusinessMessagesRichCard() + .setCarouselCard(new BusinessMessagesCarouselCard().setCardWidth("MEDIUM") + .setCardContents(Arrays.asList( + new BusinessMessagesCardContent() + .setTitle("Card #1") + .setDescription("The description for card #1") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Card #1").setPostbackData("card_1") + ))) + .setMedia(new BusinessMessagesMedia() + .setHeight(MediaHeight.MEDIUM.toString()) + .setContentInfo(new BusinessMessagesContentInfo() + .setFileUrl("https://storage.googleapis.com/kitchen-sink-sample-images/cute-dog.jpg"))), + new BusinessMessagesCardContent() + .setTitle("Card #2") + .setDescription("The description for card #2") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Card #2").setPostbackData("card_2") + ))) + .setMedia(new BusinessMessagesMedia() + .setHeight(MediaHeight.MEDIUM.toString()) + .setContentInfo(new BusinessMessagesContentInfo() + .setFileUrl("https://storage.googleapis.com/kitchen-sink-sample-images/elephant.jpg"))) + ) + ))) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendRichCardMessageSnippet.java b/snippets/com/google/apis/SendRichCardMessageSnippet.java new file mode 100644 index 0000000..e553b23 --- /dev/null +++ b/snippets/com/google/apis/SendRichCardMessageSnippet.java @@ -0,0 +1,106 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import com.google.communications.businessmessages.v1.MediaHeight; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendRichCardMessageSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a rich card with two suggested replies + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setFallback("Hello, world!\nSent with Business Messages\n\nReply with \"Suggestion #1\" or \"Suggestion #2\"") + .setRichCard(new BusinessMessagesRichCard() + .setStandaloneCard(new BusinessMessagesStandaloneCard() + .setCardContent( + new BusinessMessagesCardContent() + .setTitle("Hello, world!") + .setDescription("Sent with Business Messages.") + .setSuggestions(Arrays.asList( + new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Suggestion #1").setPostbackData("suggestion_1") + ), + new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Suggestion #2").setPostbackData("suggestion_2") + )) + ) + .setMedia(new BusinessMessagesMedia() + .setHeight(MediaHeight.MEDIUM.toString()) + .setContentInfo( + new BusinessMessagesContentInfo() + .setAltText("Google logo") + .setFileUrl("https://www.google.com/images/branding/googlelogo/2x/googlelogo_color_272x92dp.png") + .setForceRefresh(false) + )) + ))) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendRichTextMessageSnippet.java b/snippets/com/google/apis/SendRichTextMessageSnippet.java new file mode 100644 index 0000000..3f20404 --- /dev/null +++ b/snippets/com/google/apis/SendRichTextMessageSnippet.java @@ -0,0 +1,82 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendRichTextMessageSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a rich text message + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setContainsRichText(true) // Force this message to be processed as rich text + .setText("Hello, here is some **bold text**, *italicized text*, and a [link](https://www.google.com).") + .setFallback("Hello, check out this link https://www.google.com.") + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendSuggestedActionSnippet.java b/snippets/com/google/apis/SendSuggestedActionSnippet.java new file mode 100644 index 0000000..c36e1b0 --- /dev/null +++ b/snippets/com/google/apis/SendSuggestedActionSnippet.java @@ -0,0 +1,88 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendSuggestedActionSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a text message with an open url action + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("Hello world!") + .setFallback("Hello, world!\n\nSay \"Hello\" at https://www.growingtreebank.com") + .setSuggestions(Arrays.asList(new BusinessMessagesSuggestion() + .setAction(new BusinessMessagesSuggestedAction() + .setText("Hello").setPostbackData("hello-formal") + .setOpenUrlAction( + new BusinessMessagesOpenUrlAction().setUrl("https://www.growingtreebank.com")) + )) + ) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendSuggestedReplySnippet.java b/snippets/com/google/apis/SendSuggestedReplySnippet.java new file mode 100644 index 0000000..a5badd9 --- /dev/null +++ b/snippets/com/google/apis/SendSuggestedReplySnippet.java @@ -0,0 +1,91 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendSuggestedReplySnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a text message with two suggested replies + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("Hello, world!") + .setFallback("Hello, world!\n\nReply with \"Hello\" or \"Hi!\"") + .setSuggestions(Arrays.asList( + new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Hello").setPostbackData("hello-formal") + ), + new BusinessMessagesSuggestion() + .setReply(new BusinessMessagesSuggestedReply() + .setText("Hi!").setPostbackData("hello-informal") + )) + ) + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendSurveySnippet.java b/snippets/com/google/apis/SendSurveySnippet.java new file mode 100644 index 0000000..1aa1890 --- /dev/null +++ b/snippets/com/google/apis/SendSurveySnippet.java @@ -0,0 +1,76 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendSurveySnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a new survey to send to the user associated with the conversationId + Businessmessages.Conversations.Surveys.Create request + = bmBuilder.build().conversations().surveys() + .create("conversations/" + conversationId, + new BusinessMessagesSurvey()); + + request.setSurveyId(UUID.randomUUID().toString()); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) request).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/SendTextMessageSnippet.java b/snippets/com/google/apis/SendTextMessageSnippet.java new file mode 100644 index 0000000..2791f08 --- /dev/null +++ b/snippets/com/google/apis/SendTextMessageSnippet.java @@ -0,0 +1,80 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class SendTextMessageSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a basic text message + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setText("MESSAGE_TEXT") + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/com/google/apis/TestFallbackTestSnippet.java b/snippets/com/google/apis/TestFallbackTestSnippet.java new file mode 100644 index 0000000..d8ac559 --- /dev/null +++ b/snippets/com/google/apis/TestFallbackTestSnippet.java @@ -0,0 +1,84 @@ +import com.google.api.client.googleapis.services.AbstractGoogleClientRequest; +import com.google.api.client.http.HttpBackOffUnsuccessfulResponseHandler; +import com.google.api.client.http.HttpRequest; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.googleapis.javanet.GoogleNetHttpTransport; +import com.google.api.client.http.HttpTransport; +import com.google.api.client.json.jackson2.JacksonFactory; +import com.google.api.client.util.ExponentialBackOff; +import com.google.api.services.businessmessages.v1.Businessmessages; +import com.google.api.services.businessmessages.v1.model.*; +import java.io.FileInputStream; +import java.util.Arrays; +import java.util.UUID; + +class TestFallbackTestSnippet { + /** + * Initializes credentials used by the Business Messages API. + */ + private static Businessmessages.Builder getBusinessMessagesBuilder() { + Businessmessages.Builder builder = null; + try { + GoogleCredential credential = GoogleCredential + .fromStream(new FileInputStream("PATH_TO_SERVICE_ACCOUNT_KEY")); + + credential = credential.createScoped(Arrays.asList( + "https://www.googleapis.com/auth/businessmessages")); + + credential.refreshToken(); + + HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport(); + JacksonFactory jsonFactory = JacksonFactory.getDefaultInstance(); + + // Create instance of the Business Messages API + builder = new Businessmessages + .Builder(httpTransport, jsonFactory, null) + .setApplicationName("Sample Application"); + + // Set the API credentials and endpoint + builder.setHttpRequestInitializer(credential); + } catch (Exception e) { + e.printStackTrace(); + } + + return builder; + } + + public static void main(String args[]) { + try { + String conversationId = "CONVERSATION_ID"; + + // Create client library reference + Businessmessages.Builder builder = getBusinessMessagesBuilder(); + + // Create a basic text message with fallback text + BusinessMessagesMessage message = new BusinessMessagesMessage() + .setMessageId(UUID.randomUUID().toString()) + .setFallback("This is the fallback text") + .setText("MESSAGE_TEXT") + .setRepresentative(new BusinessMessagesRepresentative() + .setRepresentativeType("TYPE")); + + // Create message request + Businessmessages.Conversations.Messages.Create messageRequest + = builder.build().conversations().messages() + .create("conversations/" + conversationId, message); + + // Force usage of the fallback text + messageRequest.setForceFallback(true); + + // Setup retries with exponential backoff + HttpRequest httpRequest = + ((AbstractGoogleClientRequest) messageRequest).buildHttpRequest(); + + httpRequest.setUnsuccessfulResponseHandler(new + HttpBackOffUnsuccessfulResponseHandler( + new ExponentialBackOff())); + + // Execute request + httpRequest.execute(); + } catch (Exception e) { + e.printStackTrace(); + } + } +} \ No newline at end of file diff --git a/snippets/pom.xml b/snippets/pom.xml new file mode 100644 index 0000000..e5b4844 --- /dev/null +++ b/snippets/pom.xml @@ -0,0 +1,160 @@ + + 4.0.0 + + org.sonatype.oss + oss-parent + 7 + + + com.google.apis + google-api-services-businessmessages-snippets + 1.25.4 + Business Messages Snippets + jar + https://developers.google.com/business-communications/business-messages + Java library Snippets for Google's Business Messages + + 2011 + + + Google + http://www.google.com/ + + + + https://github.com/google-business-communications/java-businessmessages/issues + GitHub Issues + + + + + The Apache Software License, Version 2.0 + http://www.apache.org/licenses/LICENSE-2.0.txt + repo + + + + + + ossrh + https://oss.sonatype.org/content/repositories/snapshots + + + + + + + org.sonatype.plugins + nexus-staging-maven-plugin + 1.6.7 + true + + ossrh + https://oss.sonatype.org/ + true + + + + org.apache.maven.plugins + maven-release-plugin + 2.5.3 + + true + false + release + deploy + + + + maven-compiler-plugin + 2.3.2 + + 1.8 + 1.8 + + + + maven-jar-plugin + 2.3.1 + + + + Google + 1.6.x + + + + + + org.apache.maven.plugins + maven-source-plugin + 3.0.1 + + + attach-sources + + jar + + + + + + org.apache.maven.plugins + maven-javadoc-plugin + 2.9.1 + + + attach-javadocs + + jar + + + + + + org.apache.maven.plugins + maven-gpg-plugin + 1.5 + + + sign-artifacts + verify + + sign + + + + + + maven-javadoc-plugin + 2.7 + + Business Messages API ${project.version} + Business Messages API ${project.version} + + http://docs.oracle.com/javase/7/docs/api + http://javadoc.google-http-java-client.googlecode.com/hg/1.25.0-SNAPSHOT + http://javadoc.google-oauth-java-client.googlecode.com/hg/1.25.0-SNAPSHOT + http://javadoc.google-api-java-client.googlecode.com/hg/1.25.0-SNAPSHOT + + + + + . + + + + + com.google.api-client + google-api-client + 1.25.0 + + + + + UTF-8 + 1.8 + 1.8 + + + \ No newline at end of file