使用 Node JS 的 AWS SNS 推送通知
Posted
技术标签:
【中文标题】使用 Node JS 的 AWS SNS 推送通知【英文标题】:AWS SNS push notification using Node JS 【发布时间】:2017-01-18 05:29:44 【问题描述】:我搜索了 AWS 文档并浪费了几个小时,但找不到使用 Node JS 发送推送通知的 API 和代码。 任何人都可以帮助在 android 和 ios 设备上使用 Node JS 发送 AWS SNS 推送通知吗?
【问题讨论】:
docs.aws.amazon.com/sns/latest/dg/SNSMobilePushBaiduAPI.html ***.com/questions/21609121/… 【参考方案1】:得到答案。
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);
);
);
【讨论】:
【参考方案2】:使用 sns-mobile
以下示例为由 PlatformApplicationArn 标识的 Android 应用程序创建一个 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);
);
);
For more detail see documentation
【讨论】:
以上是关于使用 Node JS 的 AWS SNS 推送通知的主要内容,如果未能解决你的问题,请参考以下文章