Skip to content

A simple PHP library for the Pushover service.

Notifications You must be signed in to change notification settings

Feilner/pushover

 
 

Repository files navigation

Pushover for PHP

Build Status Version Total Downloads License

A simple PHP library for the Pushover service.

This library was written using the PSR-4 standards.

Installation

Use the Composer to install.

composer.json

{
	"require": {
		"leonardoteixeira/pushover": "1.*"
	}
}

Running the composer

composer install

Usage

Basic Example

<?php

require 'vendor/autoload.php';

use LeonardoTeixeira\Pushover\Client;
use LeonardoTeixeira\Pushover\Message;
use LeonardoTeixeira\Pushover\Glances;
use LeonardoTeixeira\Pushover\Exceptions\PushoverException;

$client = new Client('YOUR_USER_CODE_HERE', 'YOUR_TOKEN_HERE');

$message = new Message('Your message here.');

try {
    $client->push($message);
    echo 'The message has been pushed!', PHP_EOL;
} catch (PushoverException $e) {
    echo 'ERROR: ', $e->getMessage(), PHP_EOL;
}

$glances = new Glances();

$glances.setPercent(50); // Update percent field

try {
    $client->updateGlances($glances);
    echo 'Glances has been updated!', PHP_EOL;
} catch (PushoverException $e) {
    echo 'ERROR: ', $e->getMessage(), PHP_EOL;
}

You also can pass a title and the priority on constructor:

$message = new Message('Your message here.', 'Title here', Priority::HIGH);

Complete Example

<?php

require 'vendor/autoload.php';

date_default_timezone_set('UTC');

use LeonardoTeixeira\Pushover\Client;
use LeonardoTeixeira\Pushover\Message;
use LeonardoTeixeira\Pushover\Glances;
use LeonardoTeixeira\Pushover\Priority;
use LeonardoTeixeira\Pushover\Sound;
use LeonardoTeixeira\Pushover\Exceptions\PushoverException;
use LeonardoTeixeira\Pushover\Receipt;
use LeonardoTeixeira\Pushover\Status;

$client = new Client('YOUR_USER_CODE_HERE', 'YOUR_TOKEN_HERE');

$message = new Message();
$message->setMessage('Your messsage <b>here</b>.');
$message->setTitle('Title here');
$message->setUrl('http://www.example.com/');
$message->setAttachment('pic.jpg');
$message->setUrlTitle('Click me!');
$message->setPriority(Priority::HIGH);
$message->setSound(Sound::SIREN);
$message->setHtml(true);
$message->setDate(new \DateTime());

try {
    $receipt = $client->push($message);
    echo 'The message has been pushed!', PHP_EOL;
    $status = $client->poll($receipt);
} catch (PushoverException $e) {
    echo 'ERROR: ', $e->getMessage(), PHP_EOL;
}
$glances = new Glances();
$glances->setTitle('Title here');
$glances->setText('Text here');
$glances->setSubtext('Subtext here');
$glances->setCount(123);
$glances->setPercent(100);

try {
    $receipt = $client->updateGlances($glances);
    echo 'Glances has been updated!', PHP_EOL;
    $status = $client->poll($receipt);
} catch (PushoverException $e) {
    echo 'ERROR: ', $e->getMessage(), PHP_EOL;
}

Emergency Priority

For the emergency priority you must provide the parameters retry and expire. The callback parameter is optional.

More information

$message->setPriority(Priority::EMERGENCY);
$message->setRetry(60);
$message->setExpire(10800);
$message->setCallback('http://callback-url.com/');

You can poll the notification status using poll.

Running the tests

vendor/bin/phpunit

About

A simple PHP library for the Pushover service.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 100.0%