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

AWS: SNS sending SMS message to multiple phone numbers

我想从我的移动应用程序向多个 phone 号码发送以下消息:

"John Doe invited you to a meeting. Download meeting material 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
});

我不知道如何发送多个 phone 号码作为参数。根据文档,看来我需要先订阅一个主题,然后再发布该主题。如果这些是正确的步骤,我该如何在代码中做到这一点?

您可以使用 subscribe API 通过短信订阅 phone 号码的主题。但是用户必须先确认他们对主题的订阅,然后才能获得任何已发布的事件。

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