【问题标题】:send push notification using lambda with aws sns for single device使用带有 aws sns 的 lambda 为单个设备发送推送通知
【发布时间】:2018-10-26 07:03:00
【问题描述】:

我使用 aws SNS 为发送推送 (ios) 做了很多 rnd。我手动创建一个平台应用程序,然后添加 deviceToken 然后推送。它运作良好。 但我想在 lambda 运行时将设备添加到应用程序平台并将推送发送到该设备令牌。有什么可以帮助我的吗?提前致谢。

【问题讨论】:

    标签: amazon-sns


    【解决方案1】:
    function sendPushMessage(deviecToken, pushMessage)
    {
      var SNS = require('sns-mobile'),EVENTS = SNS.EVENTS;
      var SNS_KEY_ID = 'AWS_USER_AWSAccessKeyId',
        SNS_ACCESS_KEY = 'AWS_USER_AWSSecretKey',
        IOS_ARN = "SNS_APPLICATION_ARN";
      var iosApp = new SNS({
        platform: SNS.SUPPORTED_PLATFORMS.IOS,
        region: 'us-west-1',
        apiVersion: '2010-03-31',
        accessKeyId: SNS_ACCESS_KEY,
        secretAccessKey: SNS_KEY_ID,
        platformApplicationArn: IOS_ARN,
        sandbox: true 
      });
      // Add a user, the endpointArn is their unique id
      // endpointArn is required to send messages to the device
      iosApp.addUser(deviecToken, JSON.stringify({
        some: 'extra data'
      }), function(err, endpointArn) {
        if (err) {
          // callback(null, err);
        }
        else{
          let endpp = endpointArn;
          // Send a simple String or data to the client
          iosApp.sendMessage(endpp, pushMessage, function(err, messageId) {
              if (err) {
                // callback(null, err);
              }
              else{
                // callback(null, messageId);
              }
          });
        }
      });
    }
    let response;
    let test = (event, context, callback) => {
    
      let deviceToken  = "YOUR DEVICE TOKEN";
    
                    let apnPayload = { aps: { alert: { title: "Hello", body: "This is the content of our push notification." }, badge: 6 } };
                    let msg = {
                           "APNS_SANDBOX": JSON.stringify(apnPayload)
                    };
                    sendPushMessage(deviceToken, msg);
    
    
    };
    module.exports = test;
    

    注意:首先你必须“npm install sns-mobile”这个包。然后创建测试 lambda 并复制粘贴此代码。我正在使用此代码并且运行良好。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多