Я хочу отправлять SMS на индийские номера, используя сервис AWS SNS. Я использую код node.js для запуска API-интерфейсов SNS для отправки SMS. Показатель успешности доставки SMS слишком низок.
Не уверен, что можно сделать.
Я проверил сообщение AWS SNS больше не отправляет SMS и Amazon SNS - Изменить идентификатор отправителя
Также поднял запрос на форуме AWS - https://forums.aws.amazon.com/thread.jspa?threadID=303941
но не смог получить указатели. Еще немного сделано:
- увеличена максимальная цена SMS до 5 долларов США
- Cloudwatch тоже не показывает журналы в реальном времени.
- SMS API не выдает никакой ошибки в ответе
Это мой код:
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
Идентификатор сообщения: ------ d5212bf1-9183-5da4-826e-7e96a48xxxxx
JSON.stringify ------ {"ResponseMetadata": {"RequestId": "5d9bxxx9-319d-52b4-8979-xxxxxxxx"}, "MessageId": "d521xxxxf1-91xx-5da4-826e-xxxxxxxx"}
Любая помощь высоко ценится. Так что я могу сделать выбор в пользу использования AWS SNS API.