R Interface to the Pushbullet Messaging Service

An R interface to the Pushbullet messaging service which provides fast and efficient notifications (and file transfer) between computers, phones and tablets. An account has to be registered at the site http://www.pushbullet.com site to obtain a (free) API key.

Pushbullet is an awesome (and free) service to pass messages between your computer, phone and tablet. It offers immediacy which is perfect for alerting, and much more.

To use it, just register as a user to obtain an API key, and maybe install the Android or iPhone app, or one of the supported browser extension or desktop applications. See the Pushbullet documentation for more, in particular

The package is functional, yet still young and thus subject to change.

Initial explorations at the end of March 2014 were not entirely successful: Using RCurl, one could retrieve device lists, and push notes but would never retrieve the proper JSON response from Pushbullet. I consulted with some of the RCurl experts (shoutout to Jeff G, Hadley W, and Duncan TL) but without resolution.

So this is a simpler reboot. We simply call the curl binary, and retrieve the JSON response.

A file ~/.rpushbullet.json can be used to pass the API key and device identifiers to the package. The content is read upon package startup, and stored in a package-local environment. The format of this file is as follows:

    "key": "...placey your api key here...",
    "devices": [ 
        ".....device 1 id......",
        ".....device 2 id......",
        ".....device 3 id......"
    "names": [
    "defaultdevice": "...nameOfYourDefault..."

The names and defaultdevice fields are optional. See the main package help page for more details.

You can also create the file programmatically via

cat(RJSONIO::toJSON(list(key="..key here..", devices=c("..aa..", "..bb.."))))

and write that content to the file ~/.rpushbullet.json.

You can also retrieve the ids of your devices with the pbGetDevices() function by calling, say, str(fromJSON(pbGetDevices())). Note that you need to load one of the packages RJSONIO or rjson or jsonlite to access the fromJSON() function.

Pushbullet has recently added channels to their API. These are notification feeds that user can subscribe to, and which allows the developer to create (per-topic) channels for various applications / topics that her users can subscribe to.

Creating a channel is easy: one simply needs to login and visit the My Channel page. From there, one can easily create a new channel by clicking the "add channel" button. There will be a prompt to enter a 'tag', a channel name, as well as a description. The channel_tag is what is needed to push posts to the channel. Currently, only the owner of a channel has permissions to post to that channel, so one will need to create the channel using the same login one has specified in ~/.rpushbullet.json in order to use RPushbullet to post to a channel.

Channels are public: Anyone who knows the channel 'tag' can subscribe and will therefore receive all messages pushed to that channel. Some users create hard-to-guess channel tags to achieve semi privacy. This works because it is, currently as of February 2015, neither possible to list the channels owned by a specific user nor possible to browse or search for other users' channels. One method to generate a hard-to-guess tag is digest::digest(rnorm(1)).

Channels can be used by passing a channel argument to the pbPost function. The Pushbullet API identifies a channel via the supplied channel_tag value of this argument. See the Pushes API documentation for +more information.

Dirk Eddelbuettel

GPL (>= 2)


Reference manual

It appears you don't have a PDF plugin for this browser. You can click here to download the reference manual.


0.3.1 by Dirk Eddelbuettel, 9 months ago

Browse source code at https://github.com/cran/RPushbullet

Authors: Dirk Eddelbuettel with contributions by Bill Evans, Mike Birdgeneau, Henrik Bengtsson, and Seth Wenchel

Documentation:   PDF Manual  

Task views: Web Technologies and Services

GPL (>= 2) license

Imports utils, stats, jsonlite, curl

System requirements: A user API key (which one can request from the website at <http://www.pushbullet.com>), and one or more devices to push messages to which may be any one of an (Android or iOS) phone, a (Chrome or Firefox, or Opera or Safari) browser or the (Windows or Mac) desktop application provided the corresponding Pushbullet 'app' has been installed on any one of these.

Imported by broman.

See at CRAN