Skip to content

Latest commit

 

History

History
84 lines (60 loc) · 1.84 KB

README.md

File metadata and controls

84 lines (60 loc) · 1.84 KB

OneSignal Notifications Channel for Laravel

This package makes it easy to send push notifications using OneSignal with Laravel 8.0+ and 9.0+

This plugin sends notifications only with OneSignal Player ID.

Installation

You can install this package via composer:

composer require macellan/onesignal

Settings

Add your OneSignal appId to your config/services.php:

// config/services.php
...
    'onesignal' => [
        'app_id' => env('ONESIGNAL_APP_ID', ''),
    ],
...

Usage

You can use the channel in your via() method inside the notification:

use Illuminate\Notifications\Notification;
use Macellan\OneSignal\OneSignalMessage;

class AccountApproved extends Notification
{
    public function via($notifiable)
    {
        return ['onesignal'];
    }

    public function toOneSignal($notifiable)
    {
        return OneSignalMessage::create()
            ->setSubject('Awesome App')
            ->setBody('Your account was approved!');  
    }
}

You can change appId of a specific notification, just add the setAppId() method

   public function toOneSignal($notifiable)
    {
        return OneSignalMessage::create()
            ->setAppId('Other AppId')
    }

In your notifiable model, make sure to include a routeNotificationForOneSignal() method.

public function routeNotificationForOneSignal()
{
    return $this->player_id;
}

On-Demand Notifications

Sometimes you may need to send a notification to someone who is not stored as a "user" of your application. Using the Notification::route method, you may specify ad-hoc notification routing information before sending the notification:

Notification::route('onesignal', 'player_id')  
            ->notify(new AccountApproved());

Credits