PubNub Notifications Channel for Laravel
Installs: 2 098
Dependents: 0
Suggesters: 0
Security: 0
Stars: 10
Watchers: 5
Forks: 5
Open Issues: 1
Requires
- php: >=7.1
- illuminate/notifications: ~5.5 || ~6.0
- illuminate/queue: ~5.5 || ~6.0
- illuminate/support: ~5.5 || ~6.0
- pubnub/pubnub: ^3.8
Requires (Dev)
- mockery/mockery: ^1.0
- phpunit/phpunit: ~7.0 || ~8.0
This package is auto-updated.
Last update: 2024-10-29 05:29:07 UTC
README
PubNub Notifications Channel for Laravel 5.5+ & 6.0. This channel allows you to send message payloads as well as push notifications to iOS, Android and Windows using PubNub.
Contents
Installation
composer require laravel-notification-channels/pubnub
Add the service provider to your config/app.php
// config/app.php 'providers' => [ ... NotificationChannels\Pubnub\PubnubServiceProvider::class, ],
Setting up the PubNub service
Add your PubNub Publish Key, Subscribe Key and Secret Key to your config/services.php
// config/services.php ... 'pubnub' => [ 'publish_key' => env('PUBNUB_PUBLISH_KEY'), 'subscribe_key' => env('PUBNUB_SUBSCRIBE_KEY'), 'secret_key' => env('PUBNUB_SECRET_KEY'), ], ...
Usage
use NotificationChannels\Pubnub\PubnubChannel; use NotificationChannels\Pubnub\PubnubMessage; use Illuminate\Notifications\Notification; class InvoicePaid extends Notification { public function via($notifiable) { return [PubnubChannel::class]; } public function toPubnub($notifiable) { return (new PubnubMessage()) ->channel('my_channel') ->title('My message title') ->body('My message body'); } }
Alternatively you may supply a channel specifically related to your notifiable by implementing the routeNotificationForPubnub()
method.
use Illuminate\Database\Eloquent\Model; use Illuminate\Notifications\Notifiable; class User extends Model { use Notifiable; public function routeNotificationForPubnub() { return $this->pubnub_channel; } }
Sending a push notification. You may chain any of the withiOS()
, withAndroid()
and withWindows()
methods to add push notifications to the message with each of the platforms.
use NotificationChannels\Pubnub\PubnubChannel; use NotificationChannels\Pubnub\PubnubMessage; use Illuminate\Notifications\Notification; class InvoicePaid extends Notification { public function via($notifiable) { return [PubnubChannel::class]; } public function toPubnub($notifiable) { return (new PubnubMessage()) ->channel('my_channel') ->title('Alert: Jon Doe Sent You A Message') ->body('Hi') ->withiOS( (new PubnubMessage()) ->sound('default') ->badge(1) ) ->withAndroid( (new PubnubMessage()) ->sound('notification') ->icon('myicon') ) ->withWindows( (new PubnubMessage()) ->type('toast') ->delay(450); ); } }
Available methods
channel('')
: Specifies the channel the message should be sent totitle('')
: Sets the title of the messagebody('')
: Sets the body of the messagestoreInHistory(true)
: If the message should be stored in the Pubnub historybadge(1)
: Sets the number to display on the push notification's badge (iOS)sound('')
: Sets the sound for the push notification (iOS, Android)icon('')
: Sets the push notification icon (Android)type('')
: Sets the type of push notification (Windows)delay(450)
: Sets the delay in seconds for the push notification (Windows)setData($key, $value)
: Adds any extra data to the payload you may needsetOption($key, $value)
: Sets any option to the push notification (iOS, Android, Windows)withiOS(PubnubMessage $message)
: Sets the push notification for iOSwithAndroid(PubnubMessage $message)
: Sets the push notification for AndroidwithWindows(PubnubMessage $message)
: Sets the push notification for Windows
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email wade@iwader.co.uk instead of using the issue tracker.
Contributing
Please see CONTRIBUTING for details.
Credits
License
The MIT License (MIT). Please see License File for more information.