Node Push Notify
A Node.js module for interfacing with Apple Push Notification, Google Cloud Messaging, Microsoft Push Notification and Amazon Device Messaging services.
Installation
npm install node-pushnotifications
Features
- Powerful and intuitive.
- Multi platform push sends.
- Automatically detects destination device type.
- Unified error handling.
Usage
iOS: Prepare cert.pem and key.pem as described in node-apn
Import and setup push module:
var settings = gcm: id: null // PUT YOUR GCM SERVER API KEY, msgcnt: 1 dataDefaults: delayWhileIdle: false timeToLive: 4 * 7 * 24 * 3600 // 4 weeks retries: 4 // Custom GCM request options https://github.com/ToothlessGear/node-gcm#custom-gcm-request-options options: {} apn: gateway: 'gateway.sandbox.push.apple.com' badge: 1 defaultData: expiry: 4 * 7 * 24 * 3600 // 4 weeks sound: 'ping.aiff' // See all available options at https://github.com/argon/node-apn/blob/master/doc/connection.markdown options: {} // I.e., change .cert location file: // options: { // cert: "/certs/ios/mycert.cert" // {Buffer|String} The filename of the connection certificate to load from disk, or a Buffer/String containing the certificate data. (Defaults to: cert.pem) // } adm: client_id: null // PUT YOUR ADM CLIENT ID, client_secret: null // PUT YOUR ADM CLIENT SECRET, expiresAfter: 4 * 7 * 24 * 3600 // 4 weeks // Custom ADM request options, same as https://github.com/ToothlessGear/node-gcm#custom-gcm-request-options options: {} ;var PushNotifications = 'node-pushnotifications';var push = settings;
GCM and ADM options: see node-gcm
APN options: see node-apn
Define destination device ID. You can send to multiple devices, independently of platform, creating an array with different destination device IDs.
// Single destinationvar deviceIds = 'INSERT_YOUR_DEVICE_ID'; // Multiple destinationsvar deviceIds = ;deviceIds;deviceIds;
Next, create a JSON object witch MUST contain, at least, a title and message and send it to server.
var data = title: 'New push notification' message: 'Powered by AppFeel' otherfields: 'optionally add more data';push;
Result will contain 'true' or 'an error description'.