private async Task RespondToMessage(string from, string to, string text) { var sendMessagesRequest = new SendMessagesRequest { ApplicationId = APP_ID, MessageRequest = new MessageRequest { Addresses = new Dictionary <string, AddressConfiguration> { [to] = new AddressConfiguration { ChannelType = ChannelType.SMS } }, MessageConfiguration = new DirectMessageConfiguration { SMSMessage = new SMSMessage { Body = text, MessageType = "TRANSACTIONAL", OriginationNumber = from } } } }; try { var response = await Client.SendMessagesAsync(sendMessagesRequest); LogInfo(response.MessageResponse.RequestId); foreach (var messageResponseResult in response.MessageResponse.Result) { LogInfo($"{messageResponseResult.Key}:{messageResponseResult.Value}"); } } catch (System.Exception e) { LogError(e); } }
private async Task SendReplyToSender(SMSMessage message, string destinationNumber) { var sendRequest = new SendMessagesRequest { ApplicationId = projectId, MessageRequest = new MessageRequest { Addresses = new Dictionary <string, AddressConfiguration> { { destinationNumber, new AddressConfiguration { ChannelType = "SMS" } } }, MessageConfiguration = new DirectMessageConfiguration { SMSMessage = message } } }; try { Console.WriteLine($"Sending message: {message.Body} to {destinationNumber}"); var response = await client.SendMessagesAsync(sendRequest).ConfigureAwait(false); Console.WriteLine("Message sent!"); } catch (Exception ex) { Console.WriteLine("The message wasn't sent. Error message: " + ex.Message); } }
static void Main(string[] args) { Console.WriteLine("Hello World!"); Configuration.BaseUri = "https://api.messagemedia.com"; Configuration.BasicAuthUserName = "******"; Configuration.BasicAuthPassword = "******"; MessageMediaMessagesClient client = new MessageMediaMessagesClient(); MessagesController messages = client.Messages; SendMessagesRequest body = new SendMessagesRequest(); body.Messages = new List <Message>(); Message body_messages_0 = new Message(); body_messages_0.Content = "Hello world!"; body_messages_0.DestinationNumber = "+614<number>"; body.Messages.Add(body_messages_0); try { dynamic result = messages.SendMessagesAsync(body).Result; } catch (APIException e) { Console.WriteLine(e.Message + e.ResponseCode + e.HttpContext.ToString()); }; }
public static void Main(string[] args) { using (var client = new AmazonPinpointClient(RegionEndpoint.GetBySystemName(region))) { var sendRequest = new SendMessagesRequest { ApplicationId = appId, MessageRequest = new MessageRequest { Addresses = new Dictionary <string, AddressConfiguration> { { toAddress, new AddressConfiguration { ChannelType = "EMAIL" } } }, MessageConfiguration = new DirectMessageConfiguration { EmailMessage = new EmailMessage { FromAddress = senderAddress, SimpleEmail = new SimpleEmail { HtmlPart = new SimpleEmailPart { Charset = charset, Data = htmlBody }, TextPart = new SimpleEmailPart { Charset = charset, Data = textBody }, Subject = new SimpleEmailPart { Charset = charset, Data = subject } } } } } }; try { Console.WriteLine("Sending message..."); SendMessagesResponse response = client.SendMessages(sendRequest); Console.WriteLine("Message sent!"); } catch (Exception ex) { Console.WriteLine("The message wasn't sent. Error message: " + ex.Message); } } }
public async Task <IActionResult> SendTextMessage([FromBody] TextMessage model) { if (model == null || string.IsNullOrWhiteSpace(model.MessageBody) || string.IsNullOrWhiteSpace(model.DestinationNumber) || string.IsNullOrWhiteSpace(model.MessageType)) { return(BadRequestResult(SMS)); } if (!ValidationHelper.IsValidPhoneNumber(model.DestinationNumber)) { return(BadRequestResult(SMS)); } if (!ValidationHelper.IsValidMessageType(model.MessageType)) { return(BadRequestResult(SMS)); } var client = new AmazonPinpointClient(_awsCredentials, RegionEndpoint.GetBySystemName(_awsSettings.Region)); SendMessagesRequest sendRequest = SendMessageRequest(SMS, model.DestinationNumber); sendRequest.MessageRequest.MessageConfiguration = new DirectMessageConfiguration { SMSMessage = new SMSMessage { Body = model.MessageBody, MessageType = model.MessageType .ToUpper(), //messageType can be TRANSACTIONAL or PROMOTIONAL } }; try { SendMessagesResponse response = await client.SendMessagesAsync(sendRequest); ((IDisposable)client).Dispose(); if (response.HttpStatusCode != HttpStatusCode.OK) { return(BadRequestResult(SMS)); } if (response.MessageResponse.Result[model.DestinationNumber].StatusCode != StatusCodes.Status200OK) { return(BadRequestResult(SMS)); } } catch { ((IDisposable)client).Dispose(); return(BadRequestResult(SMS)); } return(new OkObjectResult(new { success = true, message = $"{SMS} sent." })); }
/// <summary> /// 向指定队列发送消息 /// </summary> public async Task <SendMessagesResponse> SendMessagesAsync(SendMessagesRequest sendMessagesRequest) { Dictionary <string, string> urlParam = new Dictionary <string, string>(); urlParam.Add("queue_id", sendMessagesRequest.QueueId.ToString()); string urlPath = HttpUtils.AddUrlPath("/v2/{project_id}/queues/{queue_id}/messages", urlParam); SdkRequest request = HttpUtils.InitSdkRequest(urlPath, "application/json", sendMessagesRequest); HttpResponseMessage response = await DoHttpRequestAsync("POST", request); return(JsonUtils.DeSerialize <SendMessagesResponse>(response)); }
/// <summary> /// 发送单条消息 /// </summary> /// <param name="req"><see cref="SendMessagesRequest"/></param> /// <returns><see cref="SendMessagesResponse"/></returns> public SendMessagesResponse SendMessagesSync(SendMessagesRequest req) { JsonResponseModel <SendMessagesResponse> rsp = null; try { var strResp = this.InternalRequestSync(req, "SendMessages"); rsp = JsonConvert.DeserializeObject <JsonResponseModel <SendMessagesResponse> >(strResp); } catch (JsonSerializationException e) { throw new TencentCloudSDKException(e.Message); } return(rsp.Response); }
/// <summary> /// Send messages related to automation/leadscore /// </summary> /// <param name="request"></param> public void SendMessages(SendMessagesRequest request) { var messages = new List <TrackMessage>(); if (request.Message != null) { messages.Add(request.Message); } else { messages = request.Messages.ToList(); } if (messages.Any()) { messageRepository.SendMessages(messages); } }
private static async Task SendMessage() { using (AmazonPinpointClient client = new AmazonPinpointClient(RegionEndpoint.GetBySystemName(region))) { var sendRequest = new SendMessagesRequest { ApplicationId = appId, MessageRequest = new MessageRequest { Addresses = new Dictionary <string, AddressConfiguration> { { destinationNumber, new AddressConfiguration { ChannelType = "SMS" } } }, MessageConfiguration = new DirectMessageConfiguration { SMSMessage = new SMSMessage { Body = message, MessageType = messageType, OriginationNumber = originationNumber, SenderId = senderId, Keyword = registeredKeyword } } } }; try { Console.WriteLine("Sending message..."); var response = await client.SendMessagesAsync(sendRequest).ConfigureAwait(false); Console.WriteLine("Message sent!"); } catch (Exception ex) { Console.WriteLine("The message wasn't sent. Error message: " + ex.Message); } } }
public async Task TestConfirmDeliveryReportsAsReceivedWithInvalidAccount() { // Parameters for the API call SendMessagesRequest body = APIHelper.JsonDeserialize <SendMessagesRequest>("{ \"messages\": [ { \"callback_url\": \"https://my.callback.url.com\", \"content\": \"My first message\", \"destination_number\": \"+61491570156\", \"delivery_report\": true, \"format\": \"SMS\", \"message_expiry_timestamp\": \"2016-11-03T11:49:02.807Z\", \"metadata\": { \"key1\": \"value1\", \"key2\": \"value2\" }, \"scheduled\": \"2016-11-03T11:49:02.807Z\", \"source_number\": \"+61491570157\", \"source_number_type\": \"INTERNATIONAL\" }, { \"callback_url\": \"https://my.callback.url.com\", \"content\": \"My second message\", \"destination_number\": \"+61491570158\", \"delivery_report\": true, \"format\": \"SMS\", \"message_expiry_timestamp\": \"2016-11-03T11:49:02.807Z\", \"metadata\": { \"key1\": \"value1\", \"key2\": \"value2\" }, \"scheduled\": \"2016-11-03T11:49:02.807Z\", \"source_number\": \"+61491570159\", \"source_number_type\": \"INTERNATIONAL\" } ]}"); // Perform API call dynamic result = null; try { result = await controller.CreateSendMessagesAsync(body, "INVALID ACCOUNT"); } catch (APIException apiException) { Assert.AreEqual("HTTP Response Not OK. {\"message\":\"Invalid account 'INVALID ACCOUNT' in header Account\"}\n", apiException.Message); Assert.AreEqual(403, httpCallBackHandler.Response.StatusCode, "Status should be 403"); }; }
public SendMessagesRequestHandler( Request request, ClientConnection current, INodeNoticeService nodeNoticeService, IConversationsNoticeService conversationsNoticeService, IAttachmentsService attachmentsService, ICreateMessagesService createMessagesService, ILoadDialogsService loadDialogsService) { this.request = (SendMessagesRequest)request; userId = current.UserId ?? 0; this.current = current; this.nodeNoticeService = nodeNoticeService; this.conversationsNoticeService = conversationsNoticeService; this.attachmentsService = attachmentsService; this.createMessagesService = createMessagesService; this.loadDialogsService = loadDialogsService; }
public async Task TestSendMessages1() { // Parameters for the API call SendMessagesRequest body = APIHelper.JsonDeserialize <Models.SendMessagesRequest>("{ \"messages\": [ { \"callback_url\": \"https://my.callback.url.com\", \"content\": \"My first message\", \"destination_number\": \"+61491570156\", \"delivery_report\": true, \"format\": \"SMS\", \"message_expiry_timestamp\": \"2016-11-03T11:49:02.807Z\", \"metadata\": { \"key1\": \"value1\", \"key2\": \"value2\" }, \"scheduled\": \"2016-11-03T11:49:02.807Z\", \"source_number\": \"+61491570157\", \"source_number_type\": \"INTERNATIONAL\" }, { \"callback_url\": \"https://my.callback.url.com\", \"content\": \"My second message\", \"destination_number\": \"+61491570158\", \"delivery_report\": true, \"format\": \"SMS\", \"message_expiry_timestamp\": \"2016-11-03T11:49:02.807Z\", \"metadata\": { \"key1\": \"value1\", \"key2\": \"value2\" }, \"scheduled\": \"2016-11-03T11:49:02.807Z\", \"source_number\": \"+61491570159\", \"source_number_type\": \"INTERNATIONAL\" } ]}"); // Perform API call SendMessagesResponse result = null; try { result = await controller.CreateSendMessagesAsync(body); } catch (APIException) {}; // Test response code Assert.AreEqual(202, httpCallBackHandler.Response.StatusCode, "Status should be 202"); // Test headers Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("Content-Type", null); Assert.IsTrue(TestHelper.AreHeadersProperSubsetOf(headers, httpCallBackHandler.Response.Headers), "Headers should match"); // Test whether the captured response is as we expected Assert.IsNotNull(result, "Result should exist"); dynamic messages = result.Messages; //JObject.Parse(TestHelper.ConvertStreamToString(httpCallBackHandler.Response.RawBody)); int count = (int)messages.Count; Assert.AreEqual(count, 2); dynamic firstMessage = messages[0]; dynamic secondMessage = messages[1]; AssertSendMessageResponseValid(firstMessage, "SMS", "My first message", "https://my.callback.url.com", true, "+61491570156", "+61491570157", "queued"); AssertSendMessageResponseValid(secondMessage, "SMS", "My second message", "https://my.callback.url.com", true, "+61491570158", "+61491570159", "queued"); }
public async Task TestSendMessages1() { // Parameters for the API call SendMessagesRequest body = new SendMessagesRequest() { Messages = new List <Message> { new Message() { CallbackUrl = "https://my.callback.url.com", Content = "My first message", DestinationNumber = "+61491570156", DeliveryReport = true, Format = MessageFormat.SMS, MessageExpiryTimestamp = new DateTime(2016, 11, 03, 11, 49, 02, DateTimeKind.Utc), Metadata = new Dictionary <string, string>() { { "key1", "value1" }, { "key2", "value2" } }, Scheduled = new DateTime(2016, 11, 03, 11, 49, 02, DateTimeKind.Utc), SourceNumber = "+61491570157", SourceNumberType = NumberType.INTERNATIONAL }, new Message() { CallbackUrl = "https://my.callback.url.com", Content = "My second message", DestinationNumber = "+61491570158", DeliveryReport = true, Format = MessageFormat.SMS, MessageExpiryTimestamp = new DateTime(2016, 11, 03, 11, 49, 02, DateTimeKind.Utc), Metadata = new Dictionary <string, string>() { { "key1", "value1" }, { "key2", "value2" } }, Scheduled = new DateTime(2016, 11, 03, 11, 49, 02, DateTimeKind.Utc), SourceNumber = "+61491570159", SourceNumberType = NumberType.INTERNATIONAL } } }; // Perform API call SendMessagesResponse result = null; try { result = await controller.CreateSendMessagesAsync(body); } catch (APIException) {}; // Test response code Assert.AreEqual(202, httpCallBackHandler.Response.StatusCode, "Status should be 202"); // Test headers Dictionary <string, string> headers = new Dictionary <string, string>(); headers.Add("Content-Type", null); Assert.IsTrue(TestHelper.AreHeadersProperSubsetOf(headers, httpCallBackHandler.Response.Headers), "Headers should match"); // Test whether the captured response is as we expected Assert.IsNotNull(result, "Result should exist"); dynamic messages = result.Messages; int count = (int)messages.Count; Assert.AreEqual(count, 2); dynamic firstMessage = messages[0]; dynamic secondMessage = messages[1]; AssertSendMessageResponseValid(firstMessage, "SMS", "My first message", "https://my.callback.url.com", true, "+61491570156", "+61491570157", "queued"); AssertSendMessageResponseValid(secondMessage, "SMS", "My second message", "https://my.callback.url.com", true, "+61491570158", "+61491570159", "queued"); }
public async Task <IActionResult> SendEmail([FromBody] EmailModel model) { if (model == null || string.IsNullOrWhiteSpace(model.SubjectBody) || string.IsNullOrWhiteSpace(model.ToAddress) || (string.IsNullOrWhiteSpace(model.HtmlBody) && string.IsNullOrWhiteSpace(model.TextBody))) { return(BadRequestResult(EMAIL)); } if (!ValidationHelper.IsValidEmailAddress(model.ToAddress)) { return(BadRequestResult(EMAIL)); } var client = new AmazonPinpointClient(_awsCredentials, RegionEndpoint.GetBySystemName(_awsSettings.Region)); SendMessagesRequest sendRequest = SendMessageRequest(EMAIL.ToUpper(), model.ToAddress); sendRequest.MessageRequest.MessageConfiguration = new DirectMessageConfiguration { EmailMessage = new EmailMessage { FromAddress = _awsSettings.AwsEmail.SenderAddress, SimpleEmail = new SimpleEmail { HtmlPart = string.IsNullOrWhiteSpace(model.HtmlBody) ? null : new SimpleEmailPart { Charset = _awsSettings.AwsEmail.CharSet, Data = model.HtmlBody }, TextPart = !string.IsNullOrWhiteSpace(model.HtmlBody) ? null : new SimpleEmailPart { Charset = _awsSettings.AwsEmail.CharSet, Data = model.TextBody }, Subject = new SimpleEmailPart { Charset = _awsSettings.AwsEmail.CharSet, Data = model.SubjectBody } } } }; try { SendMessagesResponse response = await client.SendMessagesAsync(sendRequest); ((IDisposable)client).Dispose(); if (response.MessageResponse.Result[model.ToAddress].StatusCode != StatusCodes.Status200OK) { return(BadRequestResult(EMAIL)); } if (response.HttpStatusCode != HttpStatusCode.OK) { return(BadRequestResult(EMAIL)); } } catch { ((IDisposable)client).Dispose(); return(BadRequestResult("Email")); } return(new OkObjectResult(new { success = true, message = "Email sent." })); }