我想使用AWS SNS服务将SMS发送到印度号码。我正在使用node.js代码触发SNS API发送短信。短信发送成功率太低。
不确定该怎么做。
我检查了帖子AWS SNS is not sending SMS anymore和Amazon SNS -- Change Sender ID 另外,在AWS论坛上引发查询-https://forums.aws.amazon.com/thread.jspa?threadID=303941
但无法获取任何指针。完成的事情还很少:
这是我的代码:
exports.sendSMS = function(msg, phoneNumber){
phoneNumber = "+91" + phoneNumber;
setMessageAttributes();
createSubscription(phoneNumber);
var params = {
Message: msg,
PhoneNumber: phoneNumber
};
// Create promise and SNS service object
var publishTextPromise = sns.publish(params).promise();
// Handle promise's fulfilled/rejected states
publishTextPromise.then(
function(data) {
console.log("MessageID is , SMS sent ------" + data.MessageId);
console.log("JSON.stringify ------" + JSON.stringify(data));
}).catch(
function(err) {
console.error(err, err.stack);
});
}
function setMessageAttributes(){
var messageParams = {
attributes: {
'DefaultSMSType': 'Transactional',//Also tried setting this to OTP, no use
'DefaultSenderID': 'DevCare',
}
};
function createSubscription(endpoint){
// Create subscribe/email parameters
var subscribeParams = {
Protocol: 'SMS',
TopicArn: 'arn:aws:sns:us-east-1:xxxxxxx:US-xxxx',
Endpoint: endpoint
};
这是失败的SMS响应的样子:
订阅ARN为arn:aws:sns:us-east-1:351564314200:US-sendSMS:0725db58-xxxc-4764-af31-6825xxxxxx MessageID为------ d5212bf1-9183-5da4-826e-7e96a48xxxxx JSON.stringify ------ {“ ResponseMetadata”:{“ RequestId”:“ 5d9bxxx9-319d-52b4-8979-xxxxxxxx”},“ MessageId”:“ d521xxxxf1-91xx-5da4-826e-xxxxxxxx”} >
我们非常感谢您的帮助。这样我就可以选择是否继续使用AWS SNS API。