混淆使用 aws 发送短信 [更新:短信发送这么晚]
Confused sending sms using aws [Updated: sms is delivered soo late]
我正在编写一个使用 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 控制台填充了全部数据,例如 Region
、accessKey
和 secretAccessKey
、我的 mobile number
、Subject
和 message
。 post 当我尝试 运行 填写这个时,我得到以下响应。
{ ResponseMetadata: { RequestId: '30d54840-1aa8-5ad4-8de7-19cad1ed033f' },
MessageId: '7cc1d99e-b835-5015-b84e-88147370a9fe' }
但是没有短信发送到我的手机。
我认为该服务在我的国家/地区不可用,然后尝试从如下所示的 SMS 控制台发送消息。我的手机收到一条短信。
这里我没有使用任何topic
,我需要单独发送消息,没有要发送的批量消息。
请指导我哪里出错了,我该如何解决这个问题。
谢谢
更新
感谢您的快速测试balent。
这东西能用,最可悲的是消息在 9 小时后送达。我在印度,我们的代码以这样的方式开始 +91XXXXXXXXXX
,我也这样做了。但是当通过控制台(SMS 屏幕截图)尝试时,消息是即时的,有人可以告诉我如何解决这个问题。即即时发送的短信。
感谢您的问题和更新的答案,为了缩短在印度的投递时间,将属性 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
我正在编写一个使用 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 控制台填充了全部数据,例如 Region
、accessKey
和 secretAccessKey
、我的 mobile number
、Subject
和 message
。 post 当我尝试 运行 填写这个时,我得到以下响应。
{ ResponseMetadata: { RequestId: '30d54840-1aa8-5ad4-8de7-19cad1ed033f' },
MessageId: '7cc1d99e-b835-5015-b84e-88147370a9fe' }
但是没有短信发送到我的手机。
我认为该服务在我的国家/地区不可用,然后尝试从如下所示的 SMS 控制台发送消息。我的手机收到一条短信。
这里我没有使用任何topic
,我需要单独发送消息,没有要发送的批量消息。
请指导我哪里出错了,我该如何解决这个问题。
谢谢
更新
感谢您的快速测试balent。
这东西能用,最可悲的是消息在 9 小时后送达。我在印度,我们的代码以这样的方式开始 +91XXXXXXXXXX
,我也这样做了。但是当通过控制台(SMS 屏幕截图)尝试时,消息是即时的,有人可以告诉我如何解决这个问题。即即时发送的短信。
感谢您的问题和更新的答案,为了缩短在印度的投递时间,将属性 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