Downloads
Stars
Version
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.
composer require laravel-notification-channels/pubnub
Add the service provider to your config/app.php
// config/app.php
'providers' => [
...
NotificationChannels\Pubnub\PubnubServiceProvider::class,
],
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'),
],
...
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);
);
}
}
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 WindowsPlease see CHANGELOG for more information what has changed recently.
$ composer test
If you discover any security related issues, please email [email protected] instead of using the issue tracker.
Please see CONTRIBUTING for details.
The MIT License (MIT). Please see License File for more information.