1

Ich habe AWS-Dokumentation gesucht und einige Stunden vergeudet, konnte aber die API und den Code zum Senden von Push-Benachrichtigungen mit Node JS nicht finden. Kann jemand beim Senden von AWS SNS-Push-Benachrichtigungen mit Node JS auf Android- und iOS-Geräten helfen?AWS SNS-Push-Benachrichtigung mit Node JS

+0

http://docs.aws.amazon.com/sns/latest/dg/SNSMobilePushBaiduAPI.html – Adiii

+0

http://stackoverflow.com/questions/21609121/anyone-using-node-js-with- Amazon-SNS-und-Apple-Push-Benachrichtigungen – Adiii

Antwort

2

Verwenden SNS-mobile

Das folgende Beispiel erzeugt eine SNS-Instanz für eine Android-Anwendung von einem

PlatformApplicationArn identifiziert
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

1

die Antwort.

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); 
    }); 
});