【问题标题】:AWS SNS push notification using Node JS使用 Node JS 的 AWS SNS 推送通知
【发布时间】:2017-01-18 05:29:44
【问题描述】:

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

【问题讨论】:

标签: node.js amazon-web-services push-notification apple-push-notifications amazon-sns


【解决方案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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-07-12
      • 1970-01-01
      • 2023-02-16
      • 2015-05-25
      • 2019-08-29
      • 1970-01-01
      相关资源
      最近更新 更多