PushBullet の API を利用してみる

PushBulletとは

PushBullet は Windows, MacOS, iOS, Android など、接続をしたデバイス間でメッセージやファイルの転送が、簡単に行えるアプリケーションです。

Pushbullet - Your devices working better together

PushBullet には HTTP リクエストで利用できる API が提供されており、サーバーから API リクエストを送ることはもちろん、CORS リクエストが許可されているので、ブラウザから XHR などを使って API を利用することができます。

アクセストークンの確認方法

PushBullet を利用するためにはアクセストークンが必要となります。アクセストークンはユーザーを識別するためのに与えられた文字列のようなもので、これを使って API にリクエストすることでユーザー固有の情報にアクセスすることができるようになります。

アクセストークンは以下のページから確認することができます。

Connected Accounts

上のスクリーンショットの部分に自分のアクセストークンが表示されているかと思います。

JavaScript から API にアクセスする

JavaScript からアクセスする場合は XHR などを使って簡単にアクセスできます。

DEMO

See the Pen PushBullet by turusuke (@turusuke) on CodePen.

デモの YOUR_ACCESS_TOKEN の部分を先ほど確認したアクセストークンに差し替えれば、デベロッパーツールのコンソールに自分の PushBullet のアカウント情報が表示されているかと思います。

PHP から API にアクセスする

PHP から PushBullet の API にアクセスする場合は、Pushbullet for PHPを利用すると便利です。

インストール

Composer からインストールすることができるようになっているので、作業用フォルダの composer.json に以下のような記述を書いておきます。

{
    "require": {
        "ivkos/pushbullet": "3.*"
    }
}

 使い方

Pushbullet for PHP をインストールしたら、PHP から 利用してみようかと思います。 autoload を読み込んで Pushbullet for PHP を扱えるようにして、Pushbullet クラスのインスタンスを作成します。

インスタンス作成時に引数で渡すオプションには自分のアクセストークンを渡します。

require 'vendor/autoload.php';
$pb = new Pushbullet\Pushbullet(MY\_ACCESS\_TOKEN);

メッセージ通知を送信する

このインスタンスから接続しているデバイスにメッセージを送ってみようかと思います。 各APIを使って通知をデバイスに送るためには device,または allDevices というメソッドを使って対象の端末を選択します。

  • device() ... 特定の端末にだけ通知を送る。引数には固有の ID(iden) または端末につけた名前を渡します。
  • allDevices() ... 全てのデバイスに対して通知を送信します。

対象のデバイスを選択できたところで、メッセージ通知を送るためのメソッド pushNote を利用してみます。

pushNote(タイトル,メッセージ);
// 一台にだけメッセージを送る
$pb->device("私のデバイス")->pushNote("This is title", "Hello World");

// 対象となる全てのデバイスにメッセージを送る
$pb->allDevices()->pushNote("This is title", "send to message for all devices");

他にもライブラリ経由で API を利用できるメソッドは用意されています。 以下にスニペットを用意しました。

PushBullet-for-PHP-sample

ただ一部のメソッド(list, access など)はタイトルしか送れていませんでした。 少し前の大幅アップデートの影響なのか、自分の記述が悪いのか…調査中です…

終わりに

PushBullet はとっても便利なんですが、先日のアップデート以降バグが沢山出てしまっているようで、私の iPhone でも通知が来なくなってしまっていました。 これに関して、公式のアカウントでは次のアップデートで修正されるとのことがアナウンスされていました。

早くアップデートできるようになってほしいですね。

参考

【PushBulletAPI】連絡フォームの通知をPushBulletを使って受け取る