Skip to content

OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.

License

Notifications You must be signed in to change notification settings

kodjunkie/onesignal-php-sdk

Repository files navigation

OneSignal

OneSignal PHP SDK

OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.

Latest Stable Version PHP Version Require Total Downloads tests license: MIT

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.