A pretty convenient library to use PushNotifier in PHP projects.
Add this to composer.json:
"require": {
"gidix/pushnotifier-php": "^2.0.0"
}...or run composer require gidix/pushnotifier-php
You only have to use one class: GIDIX\PushNotifier\SDK\PushNotifier. Everything is derived from there.
Before you can actually do anything, you have to create your application. It consists of an API Token and a package name. Both can be configured at pushnotifier.de/account/api.
Then you can create your instance:
$app = new GIDIX\PushNotifier\SDK\PushNotifier([
'api_token' => 'YOUR_API_TOKEN',
'package' => 'YOUR.PACKAGE.NAME'
]);When authenticating as a user you have to log them in, then use their AppToken for all further communication:
$appToken = $app->login('username', 'password');You can store $appToken anywhere you like by converting it to a string before storing (see examples/storing-app-token.php).
Afterwards you can use the AppToken to authenticate:
$app = new GIDIX\PushNotifier\SDK\PushNotifier([
'api_token' => 'YOUR_API_TOKEN',
'package' => 'YOUR.PACKAGE.NAME',
'app_token' => $appToken
]); $devices = $app->getDevices();will retrieve an array of GIDIX\PushNotifier\SDK\Device objects, containing an ID, a title, a model and a link to an image of the device. Device IDs do not change over time and serve as a unique identifier.
$result = $app->sendMessage($devices, 'Some Content');$devices has to be an array of either Device objecs or device ID strings, i.e. ['abc', 'xyz'].
$result = $app->sendURL($devices, 'https://some.example.org/with/path.html');$devices has to be an array of either Device objecs or device ID strings, i.e. ['abc', 'xyz'].
$result = $app->sendNotification($devices, 'Some Content', 'https://some.example.org/with/path.html');- DeviceNotFoundException: When a device couldn't be found
- InvalidAPITokenException: When the api_token or package couldn't be verified
- InvalidAppTokenException: When the AppToken couldn't be verified or has expired
- InvalidCredentialsException: When login credentials were incorrect
- InvalidRequestException: When some request data was malformatted, i.e. malformatted URL for notifications
- PushNotifierException: Base Exception for all these, only thrown in case of an unknown error (500)
$devices has to be an array of either Device objecs or device ID strings, i.e. ['abc', 'xyz'].
Examples can be found in examples/ of this repository.