AWS:SNS向多个电话号码发送短信

时间:2018-01-21 00:02:42

标签: amazon-web-services aws-sdk amazon-sns sms-gateway

在我的移动应用中,我想将以下信息发送到多个电话号码:

“John Doe邀请您参加会议。下载会议资料http://alink.com

此消息为Transactional

我在EC2上运行了Node.js.我是移动应用程序开发人员,也是AWS新手。

在我的SNS控制台中,我创建了一个主题。这创建了一个ARN:arn:aws:sns:us-east-1:xxx1234xxxx:MyAppName

我在NodeJS中有以下代码:

var AWS = require('aws-sdk');
var auth = require('../snsAuth');

AWS.config.update = auth

var sns = new AWS.SNS();
var params = {
    Message: "John Doe invited you to a meeting. Download meeting material http://alink.com",
    MessageStructure: 'string',
    PhoneNumber: '1xxx1234',
    Subject: 'MyApp'
};

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

sns.publish(params, function (err, data) {
    if (err) console.log(err, err.stack); // an error occurred
    else console.log(data);           // successful response
});

我不知道如何发送多个电话号码作为参数。根据文档,我似乎需要首先订阅主题,然后发布主题。如果这些是正确的步骤,我该如何在代码中执行此操作?

1 个答案:

答案 0 :(得分:0)

您可以使用subscribe API通过短信订阅某个主题的电话号码。但是,用户必须在获得任何已发布的事件之前确认他们对该主题的订阅。

var params = {
  Protocol: 'sms',
  TopicArn: 'arn:aws:sns:us-east-1:xxx1234xxxx:MyAppName',
  Endpoint: '1xxx1234'
};
sns.subscribe(params, function(err, data) {
  if (err) console.log(err, err.stack); // an error occurred
  else     console.log(data);           // successful response
});