0.0.3 • Published 8 years ago
pushjet v0.0.3
PushJet API
A Node.js module for using PushJet API.
Installation
npm i pushjet
Usage
All methods described in PushJet documentation are supported. Each method returns Promise which fulfilled with appropriate json object or rejected with an error.
API
sendMessage(secret, message, title, level, link)
Send a message
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
secret | string | the service secret token | d2d1820d56b862a6f5b1a69a7af730fa | X |
message | string | The notification text | our server is on fire!!@#! | X |
title | string | A custom message title | Big server #5 | |
level | integer | The importance level from 1(low) to 5(high) | 3 | |
link | string | http://i.imgur.com/TerUkQY.gif | An optional link |
fetchUnreadMessages(uuid)
Fetch unread messages
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
markMessagesAsRead(uuid)
Mark messages as read
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
createService(name, icon)
Create service
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
name | string | The service name | important stuff | X |
icon | string | The service icon | http://im.gy/images/SkZ.png |
getServiceInfo(service, secret)
Get service info
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
service | string | Obtain service info using the public token | 4be3-eda97a-0d7faeab05a0-89403-ad4751c49 | |
secret | string | Obtain service info using the secret | d2d1820d56b862a6f5b1a69a7af730fa |
updateServiceInfo(secret, name, icon)
Update service info
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
secret | string | The service secret | stringd2d1820d56b862a6f5b1a69a7af730fa | X |
name | string | Updated service name | Cool new name | |
icon | string | Updated service image | http://im.gy/images/SkZ.png |
deleteService(secret)
This will unsubscribe all listeners
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
secret | string | The service secret | d2d1820d56b862a6f5b1a69a7af730fa | X |
subscribeToService(uuid, service)
Subscribe to a service
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
service | string | The service's public token | 4be3-eda97a-0d7faeab05a0-89403-ad4751c49 | X |
getSubscriptions(uuid)
Get subscriptions
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
unsubscribe(uuid, servie)
Unsubscribe
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
service | string | The service's public token | 4be3-eda97a-0d7faeab05a0-89403-ad4751c49 | X |
registerDeviceForGCM(uuid, regid, pubkey)
Registering a device for GCM Only enabled when Google Cloud Messaging is enabled on the server
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
regid | string | The registration ID generated by GCM | EXAMPLExV2lcV2zEKTLNYs625zfk2jh4EXAMPLE | X |
pubkey | string | Optional public key for message encryption |
removingGCMRegistration(uuid)
Removing a GCM registration
Parameters
name | type | meaning | example | required |
---|---|---|---|---|
uuid | string | The device UUID | D867AB3E-36D2-11E4-AEA8-76C9E2E253B6 | X |
A quick and dirty example.
We share service's public token between pusher and receiver.
'use strict';
const PushJet = require('pushjet');
const pusher = new PushJet('https://api.pushjet.io/');
const name = 'pizza';
const icon = 'https://ipfs.pics/ipfs/QmVBjUHLS4jewV1VVwDRBfB2DBjqYA993jjUBVez2God21';
// subscribe to a service and receive messages
const subscribe = (pusher, service) => {
const uuid = require('node-uuid');
const device = uuid.v4();
pusher.subscribeToService(device, service).then((subsciption) => {
console.log('device', device, 'subscribed');
const WebSocket = require('ws');
const ws = new WebSocket('wss://api.pushjet.io/ws');
ws.on('open', () => {
console.log('connector connected');
ws.send(device, (error) => {
console.log('sending', device, error ? error : 'ok');
});
});
ws.on('message', (data, flags) => {
console.log(data);
if (JSON.parse(data).subscription) {
console.log('connection closed');
ws.close();
}
});
}).catch((error) => {
console.log('cannot subscribe', error);
});
};
// create service, tell about eating pizzas, and then delete service
pusher.createService(name, icon).then((service) => {
const pizzas = 4;
let n = 0;
const push = () => {
pusher.sendMessage(service.secret, `eat pizza #${++n}`, 'yum-yum')
.then((status) => {
console.log('message', n, 'sent', status);
if (n < pizzas) {
// schedule next message
setTimeout(push, 1000);
return;
}
// there are no more pizzas
pusher.deleteService(service.secret).then((status) => {
console.log('service deleted');
}).catch((error) => {
console.log('cannot delete service', error);
});
}).catch((error) => {
console.log('error', error);
});
};
// subscribe to a service
subscribe(pusher, service.public);
// start sending
push();
}).catch((error) => {
console.log('error', error);
});
Third-party libraries
License
MIT