混淆使用aws发送短信[更新:短信交付太晚了]

时间:2017-05-08 19:54:09

标签: node.js amazon-web-services amazon-sns

我正在编写一个使用AWS SNS服务发送SMS的程序。我是这个话题的新手。所以我尝试了在线提供的一个代码。

,代码如下。

var AWS = require('aws-sdk');

AWS.config.region = 'your aws region';
AWS.config.update({
    accessKeyId: "your access id",
    secretAccessKey: "your secret access key",
});

var sns = new AWS.SNS();
var params = {
    Message: "your message",
    MessageStructure: 'string',
    PhoneNumber: 'phone_number_without_+',
    Subject: 'your subject'
};

sns.publish(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else console.log(data);           // successful response
});

这里我已经从我的AWS控制台填充了整个数据,例如RegionaccessKeysecretAccessKey,我的mobile numberSubject和{{1 }}。当我试图运行时填写这个,我收到以下回复。

message

但没有短信发送到我的手机。

我认为该服务在我的国家/地区不可用,然后尝试从SMS控制台发送消息,如下所示。我在手机上收到了一条短信。

enter image description here

这里我没有使用任何{ ResponseMetadata: { RequestId: '30d54840-1aa8-5ad4-8de7-19cad1ed033f' }, MessageId: '7cc1d99e-b835-5015-b84e-88147370a9fe' } ,我需要单独发送消息,没有要发送的批量消息。

请指导我哪里出错了,我该如何解决这个问题。

由于

更新

感谢您快速测试balent

这件事情正在发挥作用,最悲伤的部分是9小时后发出的消息。我在印度,我们的代码开始像这样topic,我做了同样的事情。但是当通过控制台尝试(短信截图)时,消息是即时的,有人可以告诉我们如何解决这个问题。即即将发送的短信。

1 个答案:

答案 0 :(得分:2)

感谢您提出问题并更新答案,以减少在印度的投放时间,将属性DefaultSMSType设置为" Transactional"立即交付。

sns.setSMSAttributes( { attributes : { DefaultSMSType : "Transactional" } }, function(error){ if(error){ console.log(error); } } );

解释 - 有两种类型,一种是促销,它是默认的,而不是时间关键的,一种是交易性的,时间关键用于otp。我认为在使用任一选项时存在价格差异。在阅读你的答案后,我尝试了你的方式并且短信被延迟了,所以我使用这里给出的api改为事务性,它给了即时消息。

http://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/SNS.html#publish-property