kodjunkie/onesignal-php-sdk
OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.
- How to use this package? Click here
- For the official documentation click here
Why use this package?
This is the only package out there that is a breeze to set up, and have a fluent / standardized API across endpoints.
Installation
NOTE: For laravel users, this package registers itself automatically.
composer require kodjunkie/onesignal-php-sdk
Usage in plain PHP
use Kodjunkie\OnesignalPhpSdk\OneSignal;
use Kodjunkie\OnesignalPhpSdk\Exceptions\OneSignalException;
$config = [
// Onesignal API Key
'api_key' => '',
// Onesignal Auth Key
'auth_key' => '',
// Onesignal App ID (optional)
// this is beneficial if you're working with a single OneSignal app
// so, you could pass "null" to methods / functions that requires it.
'app_id' => '',
];
try {
// Initialize the SDK
$oneSignal = new OneSignal($config);
// Using the API
// Get all apps
$response = $oneSignal->app()->getAll();
// Use json_decode() to get the response as an stdClass object
var_dump($response);
} catch (OneSignalException $exception) {
var_dump($exception->getMessage());
}
Usage in Laravel / Lumen
Set these values in your .env file
ONESIGNAL_API_KEY=
ONESIGNAL_AUTH_KEY=
ONESIGNAL_APP_ID=
Register the service provider (lumen only)
Add this line to your bootstrap/app.php file
$app->register(Kodjunkie\OnesignalPhpSdk\OneSignalServiceProvider::class);
// Register the facade (optional)
// To use, must uncomment $app->withFacades()
if (!class_exists('OneSignal')) {
class_alias(Kodjunkie\OnesignalPhpSdk\Facade::class, 'OneSignal');
}
Code samples
use Kodjunkie\OnesignalPhpSdk\Exceptions\OneSignalException;
try {
// Initialize the SDK
// Resolve from the IoC container
$oneSignal = app()->make('onesignal');
// Using the API
// Get all devices
$response = $oneSignal->device()->getAll($appId, $limit, $offset);
// Using the facade, the code above will look like this
// with "app_id" provided in the config
$response = OneSignal::device()->getAll(null, $limit, $offset);
dd($response);
} catch (OneSignalException $exception) {
dd($exception->getMessage());
}
Tests
composer test
License
This project is opened under the MIT 2.0 License which allows very broad use for both academic and commercial purposes.
Related Packages
Laravel package to send push notifications to mobile devices (apns, gcm, fcm)
Laravel package to send push notifications to mobile devices (apns, gcm)
Laravel / Lumen package for Firebase Cloud Messaging
Laravel/Lumen package to send push notifications to mobile devices (apns, gcm)