AWS SNS无效令牌

时间:2015-09-18 00:13:12

标签: javascript amazon-web-services amazon-sns

我正在尝试将端点作为我的网站(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错误:令牌无效

我哪里错了?

1 个答案:

答案 0 :(得分:0)

SNS subscribe() documentation表示返回的数据只包含SubscriptionArn。它不包含确认令牌。

我相信您正在寻找的订阅确认令牌由SNS发送到您在调用subscribe()时指示的端点。这就是SNS确认您控制端点的方式。您需要从该端点检索它,然后通过调用confirmSubscription()将其提供给SNS。