Получение успешного ответа от AWS SNS, но SMS не доставлено

Я пишу простую программу для отправки SMS с помощью службы SNS с использованием клиента Javascript.

var AWS = require('aws-sdk');
var sns = new AWS.SNS({
  region : 'ap-southeast-1',
  accessKeyId: '',
  secretAccessKey: ''
});
sns.publish({
      Message : "Test message",
      PhoneNumber : "Test number"
    }, function (err, data) {
        if(err) {
          console.log("Error - " + err);

        }
        else {
          console.log('Success - ');
          console.log(data);

        }

    });

Я добиваюсь успеха, и данные выглядят как

{ ResponseMetadata: { RequestId: '3b4e8c82-976c-55da-b1fa-dcd9ddc7254d' },
  MessageId: '47a38cbe-2047-5056-a615-dce56aecc0c1' }

Однако SMS не доставляется.

В чем может быть проблема?


person S V    schedule 20.09.2016    source источник
comment
вы пробовали с консолью aws?   -  person Abdul Manaf    schedule 20.09.2016
comment
@ Абдул Манаф - Да.   -  person S V    schedule 20.09.2016
comment
работает он или нет?   -  person Abdul Manaf    schedule 20.09.2016
comment
@AbdulManaf Извините, я не понял. Консоль AWS работает нормально. Я получаю смс.   -  person S V    schedule 20.09.2016
comment
@AbdulManaf У меня такая же проблема, я пробовал консоль aws, но она также показывает идентификатор сообщения, но не отправляет смс на телефон   -  person Muhammad Fazeel    schedule 09.09.2020


Ответы (5)


Сообщения стали доставляться после 24 числа для новых запросов. На панели показателей отображаются устаревшие данные за день. На приборной панели правильно показано, что все SMS-рассылки не были доставлены 21 сентября, несмотря на положительный ответ от API. Это заставляет меня пересмотреть свое решение использовать SNS для SMS.

Спасибо всем, кто помогал.

person S V    schedule 27.09.2016
comment
Я добавляю этот комментарий на случай, если он кому-то поможет. На момент написания этой статьи в javascript sdk, если вы не добавите к своему номеру телефона префикс «+1», вы добьетесь успеха для AWS, но сообщение не будет отправлено. Один раз добавил плюс, заработало. Спасибо за комментарий о консоли в ветке ... это заставило меня задуматься о форматировании номера телефона в этом случае использования. - person E. Maggini; 13.10.2017
comment
@ E.Maggini, ваш комментарий помог мне решить эту проблему, спасибо! Так просто, но я нигде не нашел информации, которая бы подсказывала это. Я не думаю, что в документации AWSJavaScriptSDK для SNS указано, что он должен быть в формате «+1», но должен! - person sp_conway; 09.02.2018
comment
@ Э. Маггини, просто подтверждаю, что это будет по-прежнему актуально в 2021 году. - person Gates; 04.01.2021

У меня работает настройка MessageAttributes для SMSTypes.

{'AWS.SNS.SMS.SMSType': {'DataType': 'String', 'StringValue': 'Promotional'}}

для MessageAttributes в функции публикации. Ваша функция публикации будет выглядеть так

client.publish (PhoneNumber = "YOUR_NUMBER", Message = "YOUR_MESSAGE", MessageAttributes = {'AWS.SNS.SMS.SMSType': {'DataType': 'String', 'StringValue': 'Transactional'}})

По умолчанию SMSType будет Рекламным, потому что это сообщение не будет отправляться на номера DND.

Ссылка: здесь

person Mayank Diwedi    schedule 04.04.2020

Нам нужно указать больше параметров SNS.

Страницы документации, которые могут помочь:

попробуйте этот код

var AWS = require('aws-sdk');
var sns = new AWS.SNS({
    region: 'ap-southeast-1',
    accessKeyId: '',
    secretAccessKey: ''
});


var params = {
    Message: 'Test message',
    MessageStructure: 'string',
    PhoneNumber: 'Test number'
};
sns.publish(params, function (err, data) {
    if (err) console.log("error-> " + err + "-" + number + "-" + JSON.stringify(params)); // an error occurred
    else console.log("SMS to " + number + " successfull " + JSON.stringify(data));           // successful response
});

Вы получили такой результат

{"ResponseMetadata":"RequestId":"2bb91f08-3ef0-5e55-8219-4645645"},"MessageId":"943a1224-042c-576c-936e-sfsdf34535"} {"Message":"hai manaf...r u happy","MessageStructure":"string","PhoneNumber":"+9197********"}.

Но я не получаю SMS на свой номер телефона, активированный в режиме "Не беспокоить". Я все еще исследую эту проблему.

person Abdul Manaf    schedule 20.09.2016
comment
Не могли бы вы сообщить мне те, которые я пропустил. Я вижу, что SNS легко настраивается, но я не вижу обязательных полей, которые я пропустил. - person S V; 20.09.2016
comment
пожалуйста ответьте на статус - person Abdul Manaf; 21.09.2016
comment
Я пробовал твой код. Тот же результат. СМС нет. Похоже, проблема не в коде. Что-то еще идет не так. Я продолжу расследование. Спасибо за вашу помощь. - person S V; 21.09.2016
comment
Вы придумали решение для номеров, активированных в режиме "Не беспокоить"? Я установил атрибуты сообщения как международные, но сообщения по-прежнему не доставляются. - person Naren; 06.10.2020

Какая у вас версия aws-sdk? Попробуйте обновить до последней версии.

person Mac L. Lak    schedule 27.09.2016
comment
Это последняя версия, доступная на NPM. - person S V; 27.09.2016

установите тип сообщения как "Транзакционный", он будет работать

person bipin    schedule 19.05.2020