A simple PHP library for the Pushover service.
This library was written using the PSR-4 standards.
Use the Composer to install.
{
"require": {
"leonardoteixeira/pushover": "1.*"
}
}
composer install
<?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);
<?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;
}
For the emergency priority you must provide the parameters retry
and expire
. The callback
parameter is optional.
$message->setPriority(Priority::EMERGENCY);
$message->setRetry(60);
$message->setExpire(10800);
$message->setCallback('http://callback-url.com/');
You can poll the notification status using poll
.
vendor/bin/phpunit