Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 用于发送短信的亚马逊AWS SNS无法发送短信,返回状态为;“等待激活”;_C#_Amazon Web Services_Amazon Sns_Asp.net Core 1.0 - Fatal编程技术网

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

C# 用于发送短信的亚马逊AWS SNS无法发送短信,返回状态为;“等待激活”;,c#,amazon-web-services,amazon-sns,asp.net-core-1.0,C#,Amazon Web Services,Amazon Sns,Asp.net Core 1.0,我是AWS的新手,正在尝试设置我的系统,以便在预订后向最终用户发送短信作为确认信息 到目前为止,我做了以下工作: AmazonSimpleNotificationServiceClient smsClient = new AmazonSimpleNotificationServiceClient(key, secreteKey, token, Amazon.RegionEndpoint.APSoutheast2); var smsAttributes = new Di

我是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); 
AmazonSimpleNotificationServiceClient smsClient=新的AmazonSimpleNotificationServiceClient(key、secretkey、token、Amazon.RegionEndpoint.APSoutheast2);
var smsAttributes=新字典();
MessageAttributeValue senderID=新MessageAttributeValue();
senderID.DataType=“字符串”;
senderID.StringValue=“我的发件人id”;
MessageAttributeValue sMSType=新MessageAttributeValue();
senderID.DataType=“字符串”;
senderID.StringValue=“事务性”;
CancellationTokenSource=新的CancellationTokenSource();
CancellationToken=source.token;
smsAttributes.Add(“SenderID”,SenderID);
添加(“SMSType”,SMSType);
PublishRequest PublishRequest=新PublishRequest();
publishRequest.Message=“这是第二条示例消息”;
publishRequest.MessageAttributes=smsAttributes;
publishRequest.PhoneNumber=“我的号码+和国家代码”;
任务结果=smsClient.PublishAsync(publishRequest,令牌);
但是我没有收到任何短信

调试代码时,我看到以下消息:


任何人都可以帮忙。

我通过以下更改解决了这个问题, 将SenderID更改为AWS.SNS.SMS.SenderID 和sMSType到AWS.SNS.SMS.sMSType

所以总的来说,整个流程就像

  • 下载AWSSDK的nugget以获得简单通知v3.3.5.12

  • 使用下面的简单方法发送单个短信

  • 下面是C#.NET核心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);
    
    AmazonSimpleNotificationServiceClient smsClient=新的AmazonSimpleNotificationServiceClient(my_access_key,my_secret_key,Amazon.RegionEndpoint.APSoutheast2);
    var smsAttributes=新字典();
    MessageAttributeValue senderID=新MessageAttributeValue();
    senderID.DataType=“字符串”;
    senderID.StringValue=“mySenderId”;
    MessageAttributeValue sMSType=新MessageAttributeValue();
    sMSType.DataType=“字符串”;
    sMSType.StringValue=“事务性”;
    MessageAttributeValue maxPrice=新MessageAttributeValue();
    maxPrice.DataType=“编号”;
    maxPrice.StringValue=“0.5”;
    CancellationTokenSource=新的CancellationTokenSource();
    CancellationToken=source.token;
    添加(“AWS.SNS.SMS.SenderID”,SenderID);
    添加(“AWS.SNS.SMS.SMSType”,SMSType);
    添加(“AWS.SNS.SMS.MaxPrice”,MaxPrice);
    PublishRequest PublishRequest=新PublishRequest();
    publishRequest.Message=“这是第二条示例消息”;
    publishRequest.MessageAttributes=smsAttributes;
    publishRequest.PhoneNumber=“收到的电话号码,带有+和国家代码”;
    任务结果=smsClient.PublishAsync(publishRequest,令牌);
    
    如何检查此日志,因为我尝试了您的代码,构建成功,但它没有发送SMS,也没有给出任何错误。您可以通过调试检查任务结果中的状态,或者您可以在AWS控制台中为SNS报告定义一个bucket并检查报告。如果您是第一次尝试此功能,AWS会将该帐户的短信消费限额限制为1美元,因此您可能需要提出增加短信配额限额的请求。只是为了检查您的配额是否用完,请尝试从SNS控制台发送短信。