2017-05-08 1 views
3

J'écris un programme qui envoie des SMS en utilisant le service AWS SNS. Je suis nouveau sur ce sujet. J'ai donc essayé l'un des codes disponibles en ligne.Confusion d'envoi de sms en utilisant aws [Mise à jour: sms est livré si tard]

et le code est comme ci-dessous.

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 
}); 

Ici, j'ai rempli toutes les données de ma console AWS comme Region, accessKey et secretAccessKey, mon mobile number, Subject et message. après avoir rempli ceci quand j'essaye d'exécuter ceci, j'obtiens la réponse ci-dessous.

{ ResponseMetadata: { RequestId: '30d54840-1aa8-5ad4-8de7-19cad1ed033f' }, 
    MessageId: '7cc1d99e-b835-5015-b84e-88147370a9fe' } 

mais il n'y a pas de sms remis à mon mobile.

Je pensais que le service n'était pas disponible dans mon pays, puis j'ai essayé d'envoyer le message à partir de la console SMS illustrée ci-dessous. J'ai reçu un SMS sur mon mobile.

enter image description here

Ici, je ne suis pas en utilisant une topic et je dois envoyer un message individuellement, il n'y a pas de message en vrac à envoyer.

S'il vous plaît me guider sur où je vais mal et comment puis-je résoudre ce problème.

Merci

Mise à jour

Merci pour le test rapide balent.

Cette chose fonctionne, la partie la plus triste est que le message est livré après 9 heures. Je suis en Inde et notre code commence quelque chose comme ça +91XXXXXXXXXX et j'ai fait la même chose. Mais quand essayé à travers la console (capture d'écran SMS), le message a été instantané, quelqu'un peut s'il vous plaît douche une lumière sur la façon dont cela peut être réparé. c'est-à-dire les sms à envoyer instantanément.

+1

Juste essayé ce code et SMS est livré à mon téléphone. Peut-être que vous avez mal orthographié le numéro de téléphone? Aussi pourriez-vous l'essayer avec "+" inclus? Devrait fonctionner de toute façon. – balent

+0

Mec. As-tu résolu ce problème? Je reçois aussi la même chose. Pouvez-vous m'aider dans ce –

Répondre

2

Nous vous remercions de votre question et mise à jour de la réponse, afin de réduire le délai de livraison en Inde, en mettant l'attribut DefaultSMSType à "Transactional" livré immédiatement.

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

Explanation- il existe deux types est une promotion qui est par défaut, et pas le temps critique et on est transactionnel, le temps critique utilisé pour BdP. Il y a une différence de prix je suppose en utilisant l'une ou l'autre des options. En lisant votre réponse, j'ai essayé comme vous l'avez fait et les sms ont été retardés, donc j'ai utilisé l'API donnée ici pour passer à transactionnel et cela a donné des messages instantanés.

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

+0

Est-ce une solution vraiment fonctionnante? J'ai essayé la méthode, mais elle dit que setSMSAttributes n'est pas une fonction. – supergentle

+0

Dernière fois que j'ai vérifié cela a fonctionné. Je revérifierais aujourd'hui et confirmer. –

+0

Merci. Pensez-vous que je dois fournir une version spécifique à AWS SDK pour utiliser la fonction? – supergentle