pushbots/pushbots-php

View on GitHub
README.md

Summary

Maintainability
Test Coverage
[![Build
Status](https://travis-ci.org/pushbots/pushbots-php.svg?branch=master)](https://travis-ci.org/pushbots/pushbots-php) [![Maintainability](https://api.codeclimate.com/v1/badges/46f15715f32dd218b5e6/maintainability)](https://codeclimate.com/github/pushbots/pushbots-php/maintainability)
## pushbots-php

> Official PHP package for PushBots


## Installation

Requires PHP 5.5.


Install with Composer
------------

```
$ php composer.phar require pushbots/pushbots-php
```

Then require the library in your PHP code:

```php
require "vendor/autoload.php";
```


Example
------------

```php
<?php
// load dependencies
require 'vendor/autoload.php';

use Pushbots\PushbotsClient;
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ServerException;
use GuzzleHttp\Psr7;

$client = new PushbotsClient("APPLICATION_ID", "APPLICATION_SECRET");

try {
    //Sample sending campaign to all users
    $res = $client->campaign->send([
        //Platforms
        //0 => iOS
        //1 => Android
        //2 => Chrome
        //3 => Firefox
        //4 => Opera
        //5=> Safari
        "platform" => [0,1,2,3,4,5], 
        //Message
        "msg" => "Notification message",
        //Badge [iOS only]
        "badge"    => "+1",
        //Notification payload
        "payload"=>[
            "key"=> "value"
        ]
    ]);
} catch (ClientException $e) {
    echo Psr7\str($e->getRequest());
    echo Psr7\str($e->getResponse());
} catch (ServerException $e) {
    echo Psr7\str($e->getRequest());
    echo Psr7\str($e->getResponse());
}

```

Alias
------------

```php
//Sample sending campaign to an alias
$client->campaign->alias("ALIAS", "Notification message");
```


Test notification
-------------

```php
//Sample sending campaign to an alias
$client->campaign->test();
```

Exceptions
-------------

[Guzzle](http://docs.guzzlephp.org/en/stable/quickstart.html#exceptions) throws exceptions for errors that occur during a transfer.

Sending to one device [Transactional]
------------

```php
use GuzzleHttp\Exception\ClientException;
use GuzzleHttp\Exception\ServerException;
use GuzzleHttp\Psr7;
......
try {
    $client->transactional->send([
        //topic [Required] of the transactional notification [can be any value, used only for tracking]
        "topic" => "welcome_campaign",
        //Platform [Required]
        //0 => iOS
        //1 => Android
        //2 => Chrome
        //3 => Firefox
        //4 => Opera
        //5=> Safari
        "platform" => 0,
        //recipients [Required]
        "recipients"=> [
            "tokens"=> ["343aa292e2bb642db2abb24124417cdf945a03e18c9434499d0dcef8b0d7dd0f"]
            //==OR== "ids"=>["ID"]
        ],
        //Message [Required]
        "message" => [
            "title"=>"title", //[Optional]
            "body" => "Notification message",
            "payload"    => ["key"=>"value"] //[Optional]
        ]
    ]);
} catch (ClientException $e) {
    echo Psr7\str($e->getRequest());
    echo Psr7\str($e->getResponse());
} catch (ServerException $e) {
    echo Psr7\str($e->getRequest());
    echo Psr7\str($e->getResponse());
}
```

Changelog
-------------
Version 1.2.1
 * Add campaign V3 support.
 * Bug fixes.

Version 1.2.0
 * Bug fixes.
 * Add transactional API support v3.
 * Catch GuzzleExceptions in sample code.

Version 1.1.0
 * Add testing notification.
 * Add Push/one support.
 * Add alias support.

Version 1.0.0
 * Release PushBots PHP package