Esempio n. 1
0
        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);
            }
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
         }
     }
 }
Esempio n. 5
0
        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." }));
        }
Esempio n. 6
0
        /// <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));
        }
Esempio n. 7
0
        /// <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);
        }
Esempio n. 8
0
        /// <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);
            }
        }
Esempio n. 9
0
        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);
                }
            }
        }
Esempio n. 10
0
        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");
            };
        }
Esempio n. 11
0
 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;
 }
Esempio n. 12
0
        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");
        }
Esempio n. 14
0
        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." }));
        }