Laravel 5.3+ Notifications Pushbullet Driver

1.3.0 2021-07-28 21:18 UTC

README

Latest Version on Packagist Build Status StyleCI SensioLabsInsight Quality Score Code Coverage Total Downloads

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 title
  • message($message): (string) set notification message
  • url($url): (string) set notification url (will be in notification if type is link)

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.