A Node.js module for using the PushBullet REST API.
This module is very simple to use. All you need is your PushBullet API key and you can begin pushing.
var PushBullet = require('pushbullet');
var pusher = new PushBullet('YOUR-API-KEY');
pusher.devices(function(error, response) {
// response is the JSON response from the API
});
pusher.note(deviceParams, noteTitle, noteBody, function(error, response) {
// response is the JSON response from the API
});
The push functions (note
, link
, file
) have a deviceParams
parameter which can be several types:
- If it is a string containing an '@' it is treated as an email address.
- If it is a string not containing an '@' it is treated as a device iden.
- If it is a number it is treated as a device id.
- If it is an object it is assumed to have one of the 'target parameters' as defined on https://docs.pushbullet.com/v2/pushes/ as an attribute. It can also have an optional
source_device_iden
attribute. If the object is empty,{}
, then the push is sent to all devices.
Each callback receives two arguments. For a successful request the first argument will be null
or undefined
and the second argument will be the parsed JSON response from the API.
If an error occurs at any part of the request the first argument will be an Error object.
Promises are supported and can be used in place of the callback method.
pusher.devices().then(function(devices) {
// devices is the JSON response from the API
});
Get the current user's information.
pusher.me(function(err, response) {});
Retrieves a list of pushable devices.
The options
parameter can use two attributes cursor
andlimit
to control the data returned.
active
is used to restrict the results to only active devices.cursor
is used to select the page if the results have been paginated.limit
is used to limit the number of objects in the reponse.
var options = {
limit: 10
};
pusher.devices(options, function(error, response) {});
Creates a new device.
var deviceOptions = {
nickname: 'node-app'
};
pusher.createDevice(deviceOptions, function(error, response) {});
Creates a new device.
var deviceOptions = {
nickname: 'node-app'
};
pusher.updateDevice(deviceIden, deviceOptions, function(error, response) {});
Delete a device.
pusher.deleteDevice('u1qSJddxeKwOGuGW', function(error, response) {});
Push a note to the specified device.
pusher.note('u1qSJddxeKwOGuGW', 'New Note', 'Note body text', function(error, response) {});
Push a link to the specified device.
pusher.link('u1qSJddxeKwOGuGW', 'GitHub', 'https://github.com/', 'Note body text', function(error, response) {});
Push a file to the specified device.
pusher.file('u1qSJddxeKwOGuGW', '/path/to/file', 'Important file!', function(error, response) {});
Dismiss a push.
pusher.dismissPush('udhrSpjAewzdwpCC', function(error, response) {});
Delete a push.
pusher.deletePush('udhrSpjAewzdwpCC', function(error, response) {});
Delete all pushes associated with the current account.
pusher.deleteAllPushes(function(error, response) {});
Get the push history.
The options
parameter can use three attributes cursor
, limit
and
modified_after
to control the data returned.
active
is used to only select undeleted pushes. Defaults to true if not specified.cursor
is used to select the page if the results have been paginated.limit
is used to limit the number of objects in the reponse.modified_after
should be a timestamp. Defaults to 0 if not specified.
var options = {
limit: 10,
modified_after: 1400000000.00000
};
pusher.history(options, function(error, response) {})
Get a list of current subscriptions.
The options
parameter can use two attributes cursor
andlimit
to control the data returned.
active
is used to restrict the results to only active devices.cursor
is used to select the page if the results have been paginated.limit
is used to limit the number of objects in the reponse.
var options = {
limit: 10
};
pusher.subscriptions(options, function(error, response) {});
Subscribe to a channel.
pusher.subscribe('jblow', function(error, response) {});
Subscribe to a channel.
pusher.unsubscribe('udprOsjAsLtNTRAG', function(error, response) {});
Mute a subscription.
pusher.muteSubscription('udprOsjAsLtNTRAG', function(error, response) {});
Unmute a subscription.
pusher.unmuteSubscription('udprOsjAsLtNTRAG', function(error, response) {});
Get information about a channel.
pusher.channelInfo('jblow', function(error, response) {});
Get a list of current chats.
The options
parameter can use two attributes cursor
andlimit
to control the data returned.
active
is used to restrict the results to only active devices.cursor
is used to select the page if the results have been paginated.limit
is used to limit the number of objects in the reponse.
var options = {
limit: 10
};
pusher.chats(options, function(error, response) {});
Create a new chat.
pusher.createChat('a@b.com', function(error, response) {});
Delete a chat.
pusher.deleteChat('udprOsjAsLtNTRAG', function(error, response) {});
Mute a chat.
pusher.muteChat('udprOsjAsLtNTRAG', function(error, response) {});
Unmute a chat.
pusher.unmuteChat('udprOsjAsLtNTRAG', function(error, response) {});
Send an SMS through a device.
var options = {
source_user_iden: 'ujpah72o0', // The user iden of the user sending this message
target_device_iden: 'ujpah72o0sjAoRtnM0jc', // The iden of the device corresponding to the phone that should send the SMS
conversation_iden: '+1 303 555 1212', // Phone number to send the SMS to
message: 'Hello!' // The SMS message to send
};
pusher.sendSMS(options, function(error, response) {});
Send clipboard content.
var options = {
source_user_iden: "ujpah72o0", // The iden of the user sending this message
source_device_iden: "ujpah72o0sjAoRtnM0jc", // The iden of the device sending this message
body: "http://www.google.com", // The text to copy to the clipboard
};
pusher.sendClipboard(options, function(error, response) {});
Dismiss an ephemeral.
var options = {
package_name: 'com.pushbullet.android', // Set to the package_name field from the mirrored notification
notification_id: '-8', // Set to the notification_id field from the mirrored notification
notification_tag: null, // Set to the notification_tag field from the mirrored notification
source_user_iden: 'ujpah72o0', // Set to the source_user_iden field from the mirrored notification
};
pusher.dismissEphemeral(options, function(error, response) {});
Returns a new stream listener which will emit events from the stream.
var stream = pusher.stream();
Connects to the stream.
stream.connect();
Disconnects from the stream.
stream.close();
Emitted when the stream has connected.
stream.on('connect', function() {
// stream has connected
});
Emitted when the stream has disconnected.
stream.on('close', function() {
// stream has disconnected
});
Emitted when there is a connection or streaming error.
stream.on('error', function(error) {
// stream error
});
Emitted when a message is received from the stream. message
will be emitted for all messages
but you can listen for specific messages with nop
, tickle
and push
.
stream.on('message', function(message) {
// message received
});
Emitted when the keep-alive 'no-operation' message is received.
stream.on('nop', function() {
// nop message received
});
Emitted when the tickle
message is received.
stream.on('tickle', function(type) {
// tickle message received
});
Emited when the push
message is received.
stream.on('push', function(push) {
// push message received
});
Enables End-to-End encryption.
pusher.me(function(error, user) {
// needed to call me() to gather user iden
pusher.enableEncryption('YOUR-END-TO-END-PASSWORD', user.iden);
var stream = pusher.stream();
stream.on('message', function(message) {
console.log(message); // message is decrypted automatically
});
stream.connect();
var options = {
source_user_iden: 'ujpah72o0',
target_device_iden: 'ujpah72o0sjAoRtnM0jc',
conversation_iden: '+1 303 555 1212',
message: 'Hello!'
};
pusher.sendSMS(options, function(error, response) {}); // options are encrypted automatically
});