Last active
October 30, 2022 06:12
-
-
Save tmarshall/6149ed2475f964cda3f5 to your computer and use it in GitHub Desktop.
aws-sdk sns example, in Node.js
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var AWS = require('aws-sdk'); | |
AWS.config.update({ | |
accessKeyId: '{AWS_KEY}', | |
secretAccessKey: '{AWS_SECRET}', | |
region: '{SNS_REGION}' | |
}); | |
var sns = new AWS.SNS(); | |
sns.createPlatformEndpoint({ | |
PlatformApplicationArn: '{APPLICATION_ARN}', | |
Token: '{DEVICE_TOKEN}' | |
}, function(err, data) { | |
if (err) { | |
console.log(err.stack); | |
return; | |
} | |
var endpointArn = data.EndpointArn; | |
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, | |
MessageStructure: 'json', | |
TargetArn: endpointArn | |
}, function(err, data) { | |
if (err) { | |
console.log(err.stack); | |
return; | |
} | |
console.log('push sent'); | |
console.log(data); | |
}); | |
}); |
MessageStructure
seems does not work.
When I add MessageStructure
to publish parameters, it does not send a notification to the subscriber.
Very helpful, thank you
Looks like there is some stuff to add.
The platformEndpointArn can be created but inactive.
I had a lot of trouble with it and currently working on it.
AWS doc
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
getting this error 'User: arn:aws:iam::***********:user/******* is not authorized to perform: SNS:Publish on resource:'