AWS SNS使用Node JS推送通知

我search了AWS文档并浪费了几个小时,但找不到使用Node JS发送推送通知的API和代码。 任何人都可以帮助在Android和iOS设备上使用Node JS发送AWS SNS推送通知吗?

使用sns-mobile

以下示例为由PlatformApplicationArn标识的Android应用程序创build一个SNS实例

var SNS = require('sns-mobile'), EVENTS = SNS.EVENTS; var SNS_KEY_ID = process.env['SNS_KEY_ID'], SNS_ACCESS_KEY = process.env['SNS_ACCESS_KEY'], ANDROID_ARN = process.env['SNS_ANDROID_ARN']; var androidApp = new SNS({ platform: SNS.SUPPORTED_PLATFORMS.ANDROID, region: 'eu-west-1', apiVersion: '2010-03-31', accessKeyId: SNS_ACCESS_KEY, secretAccessKey: SNS_KEY_ID, platformApplicationArn: ANDROID_ARN, //sandbox: true (This is required for targetting (iOS) APNS_SANDBOX only) }); // Add a user, the endpointArn is their unique id // endpointArn is required to send messages to the device androidApp.addUser('some_fake_deviceid_that_i_made_up', JSON.stringify({ some: 'extra data' }), function(err, endpointArn) { if(err) { throw err; } // Send a simple String or data to the client androidApp.sendMessage(enpointArn, 'Hi There!', function(err, messageId) { if(err) { throw err; } console.log('Message sent, ID was: ' + messageId); }); }); 

欲了解更多详情请参阅文档

得到了答案。

 var AWS = require('aws-sdk'); AWS.config.update({ accessKeyId: '{AWS_KEY}', secretAccessKey: '{AWS_SECRET}', region: '{SNS_REGION}' }); var sns = new AWS.SNS(); var payload = { default: 'Hello World', APNS: { aps: { alert: 'Hello World', sound: 'default', badge: 1 } } }; // first have to stringify the inner APNS object... payload.APNS = JSON.stringify(payload.APNS); // then have to stringify the entire message payload payload = JSON.stringify(payload); console.log('sending push'); sns.publish({ Message: payload, // Required MessageStructure: 'json', TargetArn: {{TargetArn}} // Required }, function(err, data) { if (err) { console.log(err.stack); return; } console.log('push sent'); console.log(data); }); });