【发布时间】:2015-10-10 22:41:29
【问题描述】:
我目前正在使用peerlibrary:aws-sdk 与一些亚马逊服务进行交互。我现在正在寻找使用相同的 SDK 包装器向电话号码发送 SMS 消息。
我要弄清楚的是所涉及的 API 调用序列。这是 SDK 的link,但我还没有找到全面的指南。
我知道如何进行这些 API 调用,但我发现您必须调用一些才能正确处理。另外,我只想向手机发送短信,而不是电子邮件。
我已经通过 AWS 控制台进行了测试。我可以创建一个主题,并使用 SMS 协议订阅该主题。我可以通过这种方式向电话号码发送 SMS 消息。但是 API 调用订阅电话号码到我创建的现有主题,然后发布到该主题有点令人困惑。
有没有人通过 SNS 和 peerlibrary:aws-sdk 的 SDK 包装器发送消息?有哪些 API 调用可以实现这一点?
据我可以通过 API 文档了解,在 AWS SNS 中手动创建主题后,我需要执行以下操作:
1) 为主题订阅电话号码(主题必须有 ARN#):
sns.subscribe(params, function(err, data) {...});
1a) 用户必须通过手机接受订阅。
2) 发布 SMS 消息:
sns.publish(params, function(err, data) {...});
3) 用户可以随时通过手机取消订阅。
但就是这样吗?
我已经有设置密钥的代码,我是否需要这样做才能调用 sub/pub API?
AWS.config.update({
accessKeyId: Meteor.settings.awsAccessKeyId,
secretAccessKey: Meteor.settings.awsSecretKey
});
更新 1:
我设置了以下代码
broadcaseSms: function () {
AWS.config.update({
accessKeyId: Meteor.settings.awsAccessKeyId,
secretAccessKey: Meteor.settings.awsSecretKey,
region: "us-east-1"
});
var sns = new AWS.SNS();
var params = {
Message: 'test 5', /* required */
MessageAttributes: {
someKey: {
DataType: String//, /* required */
// BinaryValue: new Buffer('...') || 'STRING_VALUE',
// StringValue: 'STRING_VALUE'
},
/* anotherKey: ... */
},
// MessageStructure: 'STRING_VALUE',
// Subject: 'STRING_VALUE',
// TargetArn: 'STRING_VALUE',
TopicArn: 'arn:aws:sns:us-east-1:34523452345:test'
};
sns.publish(params, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
}
但是得到一个例外:
'无效参数类型:预期 params.MessageAttributes[\'someKey\'].DataType 为字符串\n
我得到了印象属性,'someKey' 是错误的,应该是一个实际的键......
更新 2:
我是这样工作的
AWS.config.update({
accessKeyId: Meteor.settings.awsAccessKeyId,
secretAccessKey: Meteor.settings.awsSecretKey,
region: "us-east-1"
});
var sns = new AWS.SNS({params: {TopicArn: 'arn:aws:sns:us-east-1:2353452345:test'}});
sns.publish({Message: 'THE MESSAGE TO PUBLISH'}, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else console.log(data); // successful response
});
【问题讨论】:
标签: javascript amazon-web-services meteor sms amazon-sns