Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/kodjunkie/onesignal-php-sdk

OneSignal SDK for PHP developers with fluent API and supports Laravel / Lumen out of the box.
https://github.com/kodjunkie/onesignal-php-sdk

api apns fcm gcm laravel laravel-package lumen lumen-package notifications onesignal onesignal-api onesignal-php onesignal-sdk php php-libray push-notification rest-client restful-api sdk webpush

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        


OneSignal

OneSignal PHP SDK

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

[![Latest Stable Version](http://poser.pugx.org/kodjunkie/onesignal-php-sdk/v)](https://packagist.org/packages/kodjunkie/onesignal-php-sdk) [![PHP Version Require](http://poser.pugx.org/kodjunkie/onesignal-php-sdk/require/php)](https://packagist.org/packages/kodjunkie/onesignal-php-sdk) [![Total Downloads](http://poser.pugx.org/kodjunkie/onesignal-php-sdk/downloads)](https://packagist.org/packages/kodjunkie/onesignal-php-sdk) [![tests](https://github.com/kodjunkie/onesignal-php-sdk/actions/workflows/php.yml/badge.svg?branch=master)](https://github.com/kodjunkie/onesignal-php-sdk/actions/workflows/php.yml) license: MIT

- How to use this package? [Click here](https://github.com/kodjunkie/onesignal-php-sdk/tree/master/docs)
- For the official documentation [click here](https://documentation.onesignal.com/reference)

## 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.

```bash
composer require kodjunkie/onesignal-php-sdk
```

### Usage in plain PHP

```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

```dotenv
ONESIGNAL_API_KEY=
ONESIGNAL_AUTH_KEY=
ONESIGNAL_APP_ID=
```

#### Register the service provider (lumen only)

Add this line to your `bootstrap/app.php` file

```php
$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

```php
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

```bash
composer test
```

## License

This project is opened under the [MIT 2.0 License](https://github.com/kodjunkie/onesignal-php-sdk/blob/master/LICENSE)
which allows very broad use for both academic and commercial purposes.