亚马逊AWS SNS用于发送短信的功能无法发送短信,返回状态为“等待激活”。

3

我是AWS的新手,正在尝试设置我的系统以便在预订后向终端用户发送确认短信。

到目前为止,我已经完成了以下步骤:

AmazonSimpleNotificationServiceClient smsClient = new AmazonSimpleNotificationServiceClient(key, secreteKey, token, Amazon.RegionEndpoint.APSoutheast2);

             var smsAttributes = new Dictionary<string, MessageAttributeValue>();

             MessageAttributeValue senderID = new MessageAttributeValue();
             senderID.DataType = "String";
             senderID.StringValue = "my-sender-id";

             MessageAttributeValue sMSType = new MessageAttributeValue();
             senderID.DataType = "String";
             senderID.StringValue = "Transactional";

             CancellationTokenSource source = new CancellationTokenSource();
             CancellationToken token = source.Token;


             smsAttributes.Add("SenderID", senderID);
             smsAttributes.Add("SMSType", sMSType);

             PublishRequest publishRequest = new PublishRequest();
             publishRequest.Message = "This is 2nd sample message";
             publishRequest.MessageAttributes = smsAttributes;
             publishRequest.PhoneNumber = "my number with + and country code";

             Task<PublishResponse> result = smsClient.PublishAsync(publishRequest, token); 

然而我没有收到任何短信。

当我调试代码时,我看到以下信息: enter image description here

有人可以帮忙吗。

1个回答

3
我通过以下更改来解决这个问题, 将SenderID更改为AWS.SNS.SMS.SenderID 并将sMSType更改为AWS.SNS.SMS.SMSType 因此,总体流程如下
1.下载简单通知v3.3.5.12的AWSSDK nugget 2.使用以下简单方法发送单个SMS。
以下是使用C#.NET core 1.1工作的片段。
AmazonSimpleNotificationServiceClient smsClient = new AmazonSimpleNotificationServiceClient(my_access_key, my_secret_key, Amazon.RegionEndpoint.APSoutheast2);


                var smsAttributes = new Dictionary<string, MessageAttributeValue>();

                MessageAttributeValue senderID = new MessageAttributeValue();
                senderID.DataType = "String";
                senderID.StringValue = "mySenderId";

                MessageAttributeValue sMSType = new MessageAttributeValue();
                sMSType.DataType = "String";
                sMSType.StringValue = "Transactional";

                MessageAttributeValue maxPrice = new MessageAttributeValue();
                maxPrice.DataType = "Number";
                maxPrice.StringValue = "0.5";

                CancellationTokenSource source = new CancellationTokenSource();
                CancellationToken token = source.Token;


                smsAttributes.Add("AWS.SNS.SMS.SenderID", senderID);
                smsAttributes.Add("AWS.SNS.SMS.SMSType", sMSType);
                smsAttributes.Add("AWS.SNS.SMS.MaxPrice", maxPrice);

                PublishRequest publishRequest = new PublishRequest();
                publishRequest.Message = "This is 2nd sample message";
                publishRequest.MessageAttributes = smsAttributes;
                publishRequest.PhoneNumber = "received phone no with + and country code";

                Task<PublishResponse> result = smsClient.PublishAsync(publishRequest, token);

如何检查日志,因为我尝试了您的代码,构建成功,但它既没有发送短信也没有给出任何错误信息。 - Ashish Karpe
1
您可以通过调试来检查任务结果的状态,或者在AWS控制台中定义一个用于SNS报告的存储桶并检查报告。如果您是第一次尝试此操作,AWS会将短信支出限制为1美元,因此您可能需要提出请求以增加短信配额限制。只需从SNS控制台发送短信即可检查配额是否已用完。 - pritesh agrawal

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接