laravel-notification-channels / pushbullet
Laravel 5.3+ Notifications Pushbullet Driver
Installs: 9 474
Dependents: 0
Suggesters: 0
Security: 0
Stars: 14
Watchers: 7
Forks: 9
Open Issues: 6
Requires
- php: ^7.3 || ~8.0.0 || ~8.1.0 || ~8.2.0
- guzzlehttp/guzzle: ^6.2 || ^7.0
- illuminate/notifications: ~5.5 || ~6.0 || ~7.0 || ~8.0 || ~9.0 || ~10.0
- illuminate/support: ~5.5 || ~6.0 || ~7.0 || ~8.0 || ~9.0 || ~10.0
Requires (Dev)
- mockery/mockery: ^1.2.0
- phpunit/phpunit: ^8.5.21 || ^9.0 || ^10.0
This package is auto-updated.
Last update: 2024-10-17 23:52:59 UTC
README
Pushbullet notification channel for Laravel
This package makes it easy to send notifications using Pushbullet with Laravel 5.5+, 6.x, 7.x and 8.x.
Contents
Installation
To get the latest version of Pushbullet Notification channel for Laravel 5.3, simply require the project using Composer:
$ composer require laravel-notification-channels/pushbullet
Or you can manually update your require block and run composer update
if you choose so:
{ "require": { "laravel-notification-channels/pushbullet": "^1.0" } }
Setting up the Pushbullet service
In your pushbullet account go to Account settings page. Click Create Access Token
button and you will get access_token.
You need to put it to config/services.php
configuration file. You may copy the example configuration below to get started:
'pushbullet' => [ 'access_token' => env('PUSHBULLET_ACCESS_TOKEN') ]
Usage
Routing Pushbullet notifications
In order to send notifications to Pushbullet you need to specify recipient for each notifiable entity. There are currently 2 options: pushbullet email or device id of recipient.
To provide library with correct notification recipient you need to define routeNotificationForPushbullet
method on notifiable entity.
Sending notification to email:
public function routeNotificationForPushbullet() { return new \NotificationChannels\Pushbullet\Targets\Email($this->email); }
Sending notification to device id:
public function routeNotificationForPushbullet() { return new \NotificationChannels\Pushbullet\Targets\Device($this->pushbullet_device_id); }
Sending notification to all subscribers of channel that has tag:
public function routeNotificationForPushbullet() { return new \NotificationChannels\Pushbullet\Targets\Channel($this->channel_tag); }
Sending notification to all of the user's devices
public function routeNotificationForPushbullet() { return new \NotificationChannels\Pushbullet\Targets\UserDevices(); }
via
Method
On notification entity just add \NotificationChannels\Pushbullet\PushbulletChannel::class
item to array that is returned from via
method.
toPushbullet
Method
In your notification class you also should define toPushbullet
method which will return instance of \NotificationChannels\Pushbullet\PushbulletMessage
.
/** * Get the pushbullet representation of the notification. * * @param mixed $notifiable * @return \NotificationChannels\Pushbullet\PushbulletMessage */ public function toPushbullet($notifiable) { $url = url('/invoice/' . $this->invoice->id); return PushbulletMessage::create('Thank you for using our application!') ->link() ->title('One of your invoices has been paid!') ->url($url); }
Available Message methods
note()
: set notification type to note (title and message for notification are available)link()
: set notification type to link (title, message and url are available)title($title)
: (string) set notification titlemessage($message)
: (string) set notification messageurl($url)
: (string) set notification url (will be in notification if type islink
)
Changelog
Please see CHANGELOG for more information what has changed recently.
Testing
$ composer test
Security
If you discover any security related issues, please email themsaid@gmail.com 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.