OneSignal notifications channel for Laravel 5.3
, (*1)
This package makes it easy to send OneSignal notifications with Laravel 5.3., (*2)
Contents
Installation
You can install the package via composer:, (*3)
``` bash
composer require laravel-notification-channels/onesignal, (*4)
You must install the service provider:
```php
// config/app.php
'providers' => [
...
NotificationChannels\OneSignal\OneSignalServiceProvider::class,
],
Setting up your OneSignal account
Add your OneSignal App ID and REST API Key to your config/services.php:, (*5)
// config/services.php
...
'onesignal' => [
'app_id' => env('ONESIGNAL_APP_ID'),
'rest_api_key' => env('ONESIGNAL_REST_API_KEY')
],
...
Usage
Now you can use the channel in your via() method inside the notification:, (*6)
``` php
use NotificationChannels\OneSignal\OneSignalChannel;
use NotificationChannels\OneSignal\OneSignalMessage;
use NotificationChannels\OneSignal\OneSignalWebButton;
use Illuminate\Notifications\Notification;, (*7)
class AccountApproved extends Notification
{
public function via($notifiable)
{
return [OneSignalChannel::class];
}, (*8)
public function toOneSignal($notifiable)
{
return OneSignalMessage::create()
->subject("Your {$notifiable->service} account was approved!")
->body("Click here to see details.")
->url('http://onesignal.com')
->webButton(
OneSignalWebButton::create('link-1')
->text('Click here')
->icon('https://upload.wikimedia.org/wikipedia/commons/4/4f/Laravel_logo.png')
->url('http://laravel.com')
);
}
}, (*9)
In order to let your Notification know which OneSignal user(s) you are targeting, add the `routeNotificationForOneSignal` method to your Notifiable model.
You can either return a single player-id, or if you want to notify multiple player IDs just return an array containing all IDs.
```php
public function routeNotificationForOneSignal()
{
return 'ONE_SIGNAL_PLAYER_ID';
}
All available methods
-
subject(''): Accepts a string value for the title.
-
body(''): Accepts a string value for the notification body.
-
icon(''): Accepts an url for the icon.
-
url(''): Accepts an url for the notification click event.
-
webButton(OneSignalWebButton $button): Allows you to add action buttons to the notification (Chrome 48+ (web push) only).
-
button(OneSignalButton $button): Allows you to add buttons to the notification (Supported by iOS 8.0 and Android 4.1+ devices. Icon only works for Android).
-
setData($key, $value): Allows you to set additional data for the message payload. For more information check the OneSignal documentation.
OneSignalMessage::create()
->button(
OneSignalButton::create('id')
->text('button text')
->icon('button icon')
);
OneSignalMessage::create()
->webButton(
OneSignalWebButton::create('id')
->text('button text')
->icon('button icon')
->url('button url')
);
Changelog
Please see CHANGELOG for more information what has changed recently., (*10)
Testing
bash
$ composer test, (*11)
Security
If you discover any security related issues, please email m.pociot@gmail.com instead of using the issue tracker., (*12)
Contributing
Please see CONTRIBUTING for details., (*13)
Credits
License
The MIT License (MIT). Please see License File for more information., (*14)