Skip to content

alexwhitman/node-pushbullet-api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PushBullet API

A Node.js module for using the PushBullet REST API.

Usage

This module is very simple to use. All you need is your PushBullet API key and you can begin pushing.

let PushBullet = require('pushbullet');
let pusher = new PushBullet('YOUR-API-KEY');

let response = await pusher.devices();

let response = await pusher.note(deviceParams, noteTitle, noteBody);

Target devices

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.

Async/Await

Version 2 of the module supported callback and promise based execution. Version 3 uses async/await. Callbacks can still be used by utilising util.callbackify().

let response = await pusher.devices();
console.log(await response.json());

API

new PushBullet(apiKey)

Creates a new PushBullet object.

The apiKey parameter is the string API key provided by PushBullet.

PushBullet.me();

Get the current user's information.

await pusher.me();

PushBullet.devices([options])

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.
let options = {
	limit: 10
};

await pusher.devices(options);

PushBullet.createDevice(deviceOptions)

Creates a new device.

let deviceOptions = {
	nickname: 'node-app'
};

await pusher.createDevice(deviceOptions);

PushBullet.updateDevice(deviceIden, deviceOptions)

Creates a new device.

let deviceOptions = {
	nickname: 'node-app'
};

await pusher.updateDevice(deviceIden, deviceOptions);

PushBullet.deleteDevice(deviceIden)

Delete a device.

await pusher.deleteDevice('u1qSJddxeKwOGuGW');

PushBullet.note(deviceParams, noteTitle, noteBody)

Push a note to the specified device.

await pusher.note('u1qSJddxeKwOGuGW', 'New Note', 'Note body text');

PushBullet.link(deviceParams, name, url, body)

Push a link to the specified device.

await pusher.link('u1qSJddxeKwOGuGW', 'GitHub', 'https://github.com/', 'Note body text');

PushBullet.file(deviceParams, filePath, message)

Push a file to the specified device.

await pusher.file('u1qSJddxeKwOGuGW', '/path/to/file', 'Important file!');

PushBullet.dismissPush(pushIden)

Dismiss a push.

await pusher.dismissPush('udhrSpjAewzdwpCC');

PushBullet.deletePush(pushIden)

Delete a push.

await pusher.deletePush('udhrSpjAewzdwpCC');

PushBullet.deleteAllPushes(callback)

Delete all pushes associated with the current account.

await pusher.deleteAllPushes(function(error, response) {});

PushBullet.history([options])

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.
let options = {
	limit: 10,
	modified_after: 1400000000.00000
};

await pusher.history(options)

PushBullet.subscriptions([options])

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.
let options = {
	limit: 10
};

await pusher.subscriptions(options);

PushBullet.subscribe(channelTag)

Subscribe to a channel.

await pusher.subscribe('jblow');

PushBullet.unsubscribe(subscriptionIden)

Subscribe to a channel.

await pusher.unsubscribe('udprOsjAsLtNTRAG');

PushBullet.muteSubscription(subscriptionIden)

Mute a subscription.

await pusher.muteSubscription('udprOsjAsLtNTRAG');

PushBullet.unmuteSubscription(subscriptionIden)

Unmute a subscription.

await pusher.unmuteSubscription('udprOsjAsLtNTRAG');

PushBullet.channelInfo(channelTag)

Get information about a channel.

await pusher.channelInfo('jblow');

PushBullet.chats([options])

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.
let options = {
	limit: 10
};

await pusher.chats(options);

PushBullet.createChat(email)

Create a new chat.

await pusher.createChat('[email protected]');

PushBullet.deleteChat(chatIden)

Delete a chat.

await pusher.deleteChat('udprOsjAsLtNTRAG');

PushBullet.muteChat(chatIden)

Mute a chat.

await pusher.muteChat('udprOsjAsLtNTRAG');

PushBullet.unmuteChat(chatIden)

Unmute a chat.

await pusher.unmuteChat('udprOsjAsLtNTRAG');

PushBullet.createText(deviceIden, addresses, message, [options])

Create a new text.

The options parameter can be used to add additional information to the text request.

  • file_url is a URL of a file to send with the text.
  • file_type is the mime type of the file being sent. Required if file_url is used.

Other options are available, see https://docs.pushbullet.com/#text

await pusher.createText('udprOsjAsLtNTRAG', '+13035551212', 'Test Message', {});

PushBullet.updateText(textIden, options)

Update a chat.

options is an object representing the text attributes to update. See https://docs.pushbullet.com/#text for the available attributes and structure.

await pusher.updateText('udprOsjAsLtNTRAG', {});

PushBullet.deleteText(textIden)

Delete a text.

await pusher.deleteText('udprOsjAsLtNTRAG');

PushBullet.sendSMS(options)

Send an SMS through a device.

let 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
};

await pusher.sendSMS(options);

PushBullet.sendClipboard(options)

Send clipboard content.

let 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
};

await pusher.sendClipboard(options);

PushBullet.dismissEphemeral(options)

Dismiss an ephemeral.

let 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
};

await pusher.dismissEphemeral(options);

PushBullet.stream()

Returns a new stream listener which will emit events from the stream.

let stream = pusher.stream();

connect()

Connects to the stream.

stream.connect();

close()

Disconnects from the stream.

stream.close();

Events

connect

Emitted when the stream has connected.

stream.on('connect', function() {
	// stream has connected
});
close

Emitted when the stream has disconnected.

stream.on('close', function() {
	// stream has disconnected
});
error

Emitted when there is a connection or streaming error.

stream.on('error', function(error) {
	// stream error
});
message

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
});
nop

Emitted when the keep-alive 'no-operation' message is received.

stream.on('nop', function() {
	// nop message received
});
tickle

Emitted when the tickle message is received.

stream.on('tickle', function(type) {
	// tickle message received
});
push

Emited when the push message is received.

stream.on('push', function(push) {
	// push message received
});

PushBullet.enableEncryption(encryptionPassword, userIden)

Enables End-to-End encryption.

let response = await pusher.me();
let user = await response.json();

pusher.enableEncryption('YOUR-END-TO-END-PASSWORD', user.iden);

let stream = pusher.stream();

stream.on('message', function(message) {
	console.log(message); // message is decrypted automatically
});

stream.connect();

let options = {
	source_user_iden: 'ujpah72o0',
	target_device_iden: 'ujpah72o0sjAoRtnM0jc',
	conversation_iden: '+1 303 555 1212',
	message: 'Hello!'
};

await pusher.sendSMS(options); // options are encrypted automatically

About

PushBullet API module for Node.js

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published