我正在尝试将端点作为我的网站(http://website.com/)并在成功订阅后发布到SNS主题。
无论我尝试什么,我都会得到相同的无效令牌错误。有人可以帮我吗? (消毒代码)
endPointTest()
.then((result) => {
console.log("Result", result);
AWS.config.update({
accessKeyId:'accessKeyIdvalue',
secretAccessKey:'secretAccessKeyvalue',
region: 'us-west-2'
});
var sns = new AWS.SNS();
console.log("SNS OBj", sns);
var params2 = {
Protocol: 'http', /* required */
TopicArn: 'topic_ARN_from_console', /* required */
Endpoint: 'http://website.com/'
};
sns.subscribe(params2, function(err, data) {
if (err) console.log(err, err.code); // an error occurred, where it breaks
else {
console.log("Subscribing...", data.ResponseMetadata.RequestId);//Prints this
console.log("Subscribing... with data", data); //Prints this fine
var params1 = {
Token: data.ResponseMetadata.RequestId, /* required */
TopicArn: 'topic_ARN_from_console' /* required */
//AuthenticateOnUnsubscribe: 'false'
};
sns.confirmSubscription(params1, function(err, data) {
if (err) console.log(err, err.stack); // an error occurred
else {
console.log("Confirmed Sub", data);
} // successful response
});
}
});
}).catch(console.error.bind(console));
我得到错误:
POST https://sns.us-west-2.amazonaws.com/ 400 (Bad Request)
VideoUploader.js:135错误:令牌无效
我哪里错了?
答案 0 :(得分:0)
SNS subscribe() documentation表示返回的数据只包含SubscriptionArn。它不包含确认令牌。
我相信您正在寻找的订阅确认令牌由SNS发送到您在调用subscribe()时指示的端点。这就是SNS确认您控制端点的方式。您需要从该端点检索它,然后通过调用confirmSubscription()将其提供给SNS。