2017 © Pedro Peláez
 

library onesignal

OneSignal Notifications driver

image

elnooronline/onesignal

OneSignal Notifications driver

  • Monday, November 13, 2017
  • by AlShahawi
  • Repository
  • 3 Watchers
  • 1 Stars
  • 67 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 52 Forks
  • 0 Open issues
  • 7 Versions
  • 8 % Grown

The README.md

OneSignal notifications channel for Laravel 5.3

Latest Version on Packagist Software License Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads, (*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.

Button usage

OneSignalMessage::create()
    ->button(
        OneSignalButton::create('id')
            ->text('button text')
            ->icon('button icon')
    );

WebButton usage

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)

The Versions