отправить push-уведомление с помощью лямбды с aws sns для одного устройства - PullRequest
0 голосов
/ 26 октября 2018

Я сделал lot rnd для отправки push (ios), используя aws SNS. Я вручную создаю приложение платформы, затем добавляю deviceToken и затем нажимаю. Это работает хорошо. Но я хочу добавить устройство в платформу приложения во время выполнения лямбды и отправить push-запрос на этот маркер устройства. Может ли кто-нибудь мне помочь? Заранее спасибо.

1 Ответ

0 голосов
/ 26 октября 2018
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 установить sns-mobile» для этого пакета. Затем создайте тестовую лямбду и скопируйте этот код. Я использую этот код и работаю хорошо.

...