Skip to content

A node js client to consume the Pushwoosh API to send push notifications to devices

License

Notifications You must be signed in to change notification settings

auridevil/pushwoosh-node-client

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

56 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

pushwoosh-node-client

Build Status Join the chat at https://gitter.im/nluo/pushwoosh-node-client

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)

Quick Reference

Installation

npm i auridevil/pushwoosh-node-client --save

Send message to all devices

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 a specific device or devices

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

Extra options/payload

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: 'bob@example.com'
        }
    };
    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: 'bob@example.com'
        },
        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) {
    ...
});

Applications group

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 on

Register device

To 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) {
     ...
});

Tests

npm test

Currently tests are all passed and with 100% coverage

About

A node js client to consume the Pushwoosh API to send push notifications to devices

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%