A PHP library for the Pushbullet API allowing you to send all supported push notification types, manage contacts, send SMS messages, create/delete channels, and manage channel subscriptions.
For more information, you can refer to these links:
- Official website: https://www.pushbullet.com
- API reference: https://docs.pushbullet.com
- Blog: http://blog.pushbullet.com
- Apps: https://www.pushbullet.com/apps
- PHP 5.4.0 or newer
- Composer
- cURL library for PHP
- Your Pushbullet access token: https://www.pushbullet.com/account
Create a composer.json
file in your project root:
{
"require": {
"ivkos/pushbullet": "3.*"
}
}
Run php composer.phar install
to download the library and its dependencies.
Add this line to include Composer packages:
<?php
require 'vendor/autoload.php';
Initialize Pushbullet with your API key:
// Get your access token here: https://www.pushbullet.com/account
$pb = new Pushbullet\Pushbullet('YOUR_ACCESS_TOKEN');
If you use PHP for Windows it may be necessary to point cURL to a CA certificate bundle, or disable SSL certificate verification altogether:
Pushbullet\Connection::setCurlCallback(function ($curl) {
// Get a CA certificate bundle here:
// https://raw.githubusercontent.com/bagder/ca-bundle/master/ca-bundle.crt
curl_setopt($curl, CURLOPT_CAINFO, 'C:/path/to/ca-bundle.crt');
// Not recommended! Makes communication vulnerable to MITM attacks:
// curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
});
To list all active devices on your account:
$pb->getDevices();
Returns an array of Device
objects.
You can target a particular device by using its iden
or nickname
:
$pb->device("Galaxy S4")->getPhonebook();
Returns an array of PhonebookEntry
objects with names and phone numbers.
To target all available devices for pushing:
$pb->allDevices()->pushAddress("Google HQ", "1600 Amphitheatre Parkway");
This will send the address to all devices, and return a Push
object.
You can use push*
methods for Contact
, Channel
and Device
objects. Every push*
method returns a Push
object. If an object cannot be pushed to, a NotPushableException
will be thrown.
Arguments:
- Title
- Body
$pb->device("Galaxy S4")->pushNote("Hello world!", "Lorem ipsum...");
Arguments:
- Title
- URL
- Body
$pb->device("Galaxy S4")->pushLink("ivkos on GitHub", "https://github.com/ivkos", "Look at my page!");
Arguments:
- Name - the place's name.
- Address - the place's address or a map search query.
$pb->device("Galaxy S4")->pushAddress("Google HQ", "1600 Amphitheatre Parkway");
Arguments:
- Title
- Array of items in the list
$pb->device("Galaxy S4")->pushList("Shopping List", [
"Milk",
"Butter",
"Eggs"
]);
Arguments:
- File path
- MIME type (optional) - if
null
, MIME type will be magically guessed - Title (optional)
- Body (optional)
- Alternative file name (optional) - push the file as if it had this file name
$pb->device("Galaxy S4")->pushFile(
"/home/ivkos/photos/20150314_092653.jpg",
"image/jpeg",
"Look at this photo!",
"I think it's pretty cool",
"coolphoto.jpg"
);
You can send SMS messages only from supported devices. If an attempt is made to send an SMS message from a device doesn't support it, a NoSmsException
will be thrown.
$pb->device("Galaxy S4")->sendSms("+359123", "Hello there!");
Send an SMS text to all people in a device's phonebook:
$people = $pb->device("Galaxy S4")->getPhonebook();
foreach ($people as $person) {
$person->sendSms("Happy New Year!");
}
Get a list of channel subscriptions:
$pb->getChannelSubscriptions();
Returns an array of Channel
objects with subscription information.
To subscribe or unsubscribe from channels:
$pb->channel("greatchannel")->subscribe();
$pb->channel("mehchannel")->unsubscribe();
Subscribing to a channel will return a Channel
object with subscription information.
Get a list of channels created by the current user:
$pb->getMyChannels();
Returns an array of Channel
objects.
Contacts are people you can send push notification to. They are not to be confused with entries in a device's phonebook.
To list contacts on your account:
$pb->getContacts();
Returns an array of Contact
objects.
To create a contact:
$pb->createContact("John Doe", "johndoe@example.com");
Returns a Contact
object for the newly created contact.
You can target a particular contact by its email or name:
$pb->contact("johndoe@example.com")->pushNote("Hey John!", "Where are you?");
To delete a contact:
$pb->contact("Caroline")->delete();
To change a contact's name:
$pb->contact("William")->changeName("Bill");
Returns a Contact
object with an updated name.
For more detailed documentation, please refer to the PHPDoc in the source files.