javascript - 使用 NodeJS 进行 SNS 推送通知

标签 javascript node.js amazon-web-services amazon-sns

我已经浏览了node-push-notification-sns-transport的文档我已经在我的代码中实现了,第一次工作正常,但第二次它向我显示平台已配置,然后我必须切断执行并重建并重新运行,然后它工作正常。我哪里出错了?

sns = (req, res) => {
    push.addTransport(new SnsTransport({
        aws: {
            accessKeyId: cache.get('AMAZON_ACCESS_KEY'),
            secretAccessKey: cache.get('AMAZON_SECRET_KEY'),
            region: cache.get('AMAZON_REGION'),
            apiVersions: {
                sns: '2010-03-31'
            }
        },
        platformAppArn: 'arn:aws:sns:us-xxx-1:XXXXXX:app/GCM/Test'
    }));
    // Send a push notification via SNS.
    push.send('sns', 'device_token', {
        alert: 'how is it going?'
    }, (err, data) => {

        if (err) {
            res.send(err, req);
        } else {
            res.send(data);
        }


    });
}

最佳答案

你使用的是express框架吗?我发现 (req, res) => { 语法很熟悉。

如果是这样,您只需通过 AWS SNS 配置一次推送通知。只需在处理程序函数之外配置您的传输,确保它只运行一次。

push.addTransport(new SnsTransport({
  aws: {
    accessKeyId: cache.get('AMAZON_ACCESS_KEY'),
    secretAccessKey: cache.get('AMAZON_SECRET_KEY'),
    region: cache.get('AMAZON_REGION'),
    apiVersions: {
      sns: '2010-03-31'
    }
  },
  platformAppArn: 'arn:aws:sns:us-xxx-1:XXXXXX:app/GCM/Test'
}));

sns = (req, res) => {
  // Send a push notification via SNS.
  push.send('sns', 'device_token', {
    alert: 'how is it going?'
  }, (err, data) => {

    if (err) {
      res.send(err, req);
    } else {
      res.send(data);
    }
  });
}

关于javascript - 使用 NodeJS 进行 SNS 推送通知,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57864045/

相关文章:

javascript - 事件响应中的问题

javascript - onunload如何才能正常工作?

javascript - 在 Node.js 中使用 Tensorflows 通用句子编码器?

amazon-web-services - 如何使用 ELB(单机)在 AWS 中的多个域上使用 SSL

python - Boto3 S3 : Get files without getting folders

javascript - 通知用户在 SPA 网站上刷新浏览器的正确方法是什么(当 .js 文件更改时)

javascript - 如何仅在授予权限后加载 map

javascript - 每秒定期调用node.js函数

javascript - (Ubuntu/Linux) 如何使用 NodeJS 在后台运行 javascript 代码?

javascript - 我如何在 forEach 中使用 set timeout 和 promise/dynamoDB delete?