Skip to content

Fabrik/Pushbullet-for-PHP

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

72 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Pushbullet for PHP

Description

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:

Requirements

Install

Create a composer.json file in your project root:

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

Quick Documentation

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

Devices

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.

Push Notifications

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.

Note

Arguments:

  • Title
  • Body
$pb->device("Galaxy S4")->pushNote("Hello world!", "Lorem ipsum...");

Link

Arguments:

  • Title
  • URL
  • Body
$pb->device("Galaxy S4")->pushLink("ivkos on GitHub", "https://github.com/ivkos", "Look at my page!");

Address

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");

List

Arguments:

  • Title
  • Array of items in the list
$pb->device("Galaxy S4")->pushList("Shopping List", [
	"Milk",
	"Butter",
	"Eggs"
]);

File

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"
);

SMS Messaging

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!");
}

Channel Management

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.


Create a channel named mychannel. If this channel tag is already registered, a ChannelException will be thrown.

$pb->channel("mychannel")->create("My Channel", "This channel will only push awesome stuff!");

Returns a Channel object for the newly created channel.


Delete a channel if you are its creator:

$pb->channel("mychannel")->delete();

Contact Management

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.

About

PHP library for the Pushbullet API

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%