javascript - 使用 NodeJS 的 SNS 推送通知
问题描述
我已经阅读了node-push-notification-sns-transport的文档,并且我已经在我的代码中实现了它,这是第一次完美地工作但第二次它显示给我platform already configured
然后我必须削减执行并重建并重新运行然后它工作正常。我哪里错了?
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);
}
});
}
推荐阅读
- android - How to track (if possible) an Android device (latest versions) in the background at regular intervals?
- hana - 后端在云连接器中定义的系统映射列表中不可用
- javascript - 在另一个数组中调用随机数组及其元素
- css - Angular ngx daterangepicker z-index
- c# - Auto accepting permissions when the dialogs are shown during Xamarin.UITest scenarios
- angular - Router in Angular web app does not work on same component
- java - 每当调用 onCreate() 时增加一个变量
- javascript - Logical Error in code that I cannot understand
- javascript - using the same javascript file but load different data each time during an AJAX call
- laravel - 1215 Impossible d'ajouter des contraintes d'index externe