Giter VIP home page Giter VIP logo

pushbullet-for-php's Introduction

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", "[email protected]");

Returns a Contact object for the newly created contact.


You can target a particular contact by its email or name:

$pb->contact("[email protected]")->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.

pushbullet-for-php's People

Contributors

ivkos avatar konovalov avatar

Watchers

James Cloos avatar Toche Camille avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.