A node js client to consume the Pushwoosh API to send push notifications to mobile devices based on NLUO original modules.
Based on: https://github.com/nluo/pushwoosh-node-client Forked to fix some issues (the original repo seems to be deprecated, no fix and no answers)
npm i auridevil/pushwoosh-node-client --save
var Pushwoosh = require('pushwoosh-client');
var client= new Pushwoosh("AppCode", "AuthToken");
client.sendMessage('Hello world', function(error, response) {
if (error) {
console.log('Some error occurs: ', error);
}
console.log('Pushwoosh API response is', response);
});To send messages to a specificed device or devices, you can pass a device token or an arrays with devices
// Push to a device
client.sendMessage('Hello world', 'device token', function(error, response) {
...
});
// Push to multiple devices
client.sendMessage('Hello world', ['deviceToken1', 'deivceToken2'], function(error, response) {
...
});To pass extra options (please refer to the Pushwoosh doc for the available options) , you could define an option object and pass it to the function as a 2nd or 3rd parameter. E.g. if you want to pass addtional payload to the device, you could do:
var Pushwoosh = require('pushwoosh-client'),
client= new Pushwoosh("AppCode", "AuthToken"),
options = {
data: {
username: 'bob smith',
email: '[email protected]'
}
};
client.sendMessage('Hello world', 'device token', options, function(error, response) {
...
});Note that if you define devices or content in the options, the devices and message will be overwritten.
var options = {
data: {
username: 'bob smith',
email: '[email protected]'
},
devices: ['deviceToken1', 'deviceToken2', 'deviceToken3']
};
client.sendMessage('Hello world', 'device token', options, function(error, response) {
...
});Then this will send to ['deviceToken1', 'deviceToken2', 'deviceToken3'] as defined in options. so you probably just want to just do
client.sendMessage('Hello world', options, function(error, response) {
...
});To use Puswoosh applications_group code(which allows you to send to multilple applications) instead of application code, you must pass a third options argument when creating the client with useApplicationsGroup set to true:
var Pushwoosh = require('pushwoosh-client');
var client= new Pushwoosh("AppsGroupCode", "AuthToken", {
useApplicationsGroup: true,
...
});
// Will push using "applications_group":"AppsGroupCode" for all of the explained invocation patterns
client.sendMessage('Hello world', function(error, response) {
...
});
// or
client.sendMessage('Hello world', options, function(error, response) {
...
});
// ... and so onTo register a device's push token in Pushwoosh:
var Pushwoosh = require('pushwoosh-client');
var client= new Pushwoosh('AppCode', 'AuthToken');
var registerDeviceOptions = {
push_token: 'pushtoken',
hwid: 'hwid',
device_type: 3,
language: 'en', // optional, two-letter code ISO-639-1
timezone: -3600 // optional, offset in seconds
};
// this will register the device for the client's 'AppCode' application
client.registerDevice(registerDeviceOptions, function(error, response) {
...
});npm test
Currently tests are all passed and with 100% coverage