Noticeably Playful Monkeys

    pushbullet

    3.0.0 • Public • Published

    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('a@b.com');

    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.

    pusher.me(function(error, user) {
    	// needed to call me() to gather user iden
    	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
    });

    Install

    npm i pushbullet

    DownloadsWeekly Downloads

    478

    Version

    3.0.0

    License

    BSD

    Unpacked Size

    60.9 kB

    Total Files

    24

    Last publish

    Collaborators

    • alexwhitman