Pusher native Push Notifications driver.

1.0.3 2017-05-25 14:37 UTC

This package is not auto-updated.

Last update: 2021-04-27 01:44:13 UTC


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

This package makes it easy to send Pusher push notifications with Laravel 5.3 - 5.5.



You can install the package via composer:

composer require ahmadsafar/pusher-push-notifications dev-master

You must install the service provider:

// config/app.php
'providers' => [

Setting up your Pusher account

Before using this package you should set up a Pusher account. Here are the steps required.

  • Login to https://dashboard.pusher.com/
  • Select your app from the sidebar or create a new app.
  • Click on the "Push Notifications" tab.
  • Upload your APNS Certificate or add your GCM API key.
  • Now select the "App Keys" tab.
  • Copy your app_id, key, and secret.
  • Update the values in your config/broadcasting.php file under the pusher connection.
  • You're now good to go.


Now you can use the channel in your via() method inside the Notification class.

use NotificationChannels\PusherPushNotifications\PusherChannel;
use NotificationChannels\PusherPushNotifications\PusherMessage;
use Illuminate\Notifications\Notification;

class AccountApproved extends Notification
    public function via($notifiable)
        return [PusherChannel::class];

    public function toPushNotification($notifiable)
        return PusherMessage::create()
            ->body("Your {$notifiable->service} account was approved!");

Available Message methods

  • platform(''): Accepts a string value of iOS or Android.
  • iOS(): Sets the platform value to iOS.
  • android(): Sets the platform value to Android.
  • title(''): Accepts a string value for the title.
  • body(''): Accepts a string value for the body.
  • sound(''): Accepts a string value for the notification sound file. Notice that if you leave blank the default sound value will be default.
  • icon(''): Accepts a string value for the icon file. (Android Only)
  • badge(1): Accepts an integer value for the badge. (iOS Only)
  • setOption($key, $value): Allows you to set any value in the message payload. For more information check here for iOS, or here for Android.

Sending to multiple platforms

You can send a single message to an iOS device and an Android device at the same time using the withiOS() and withAndroid() method:

public function toPushNotification($notifiable)
    $message = "Your {$notifiable->service} account was approved!";

    return PusherMessage::create()
  • Notice that iOS is the default platform, which means you don't have to call ->iOS().
  • When using withAndroid() or withiOS() you don't have to define the platform, it's done behind the scenes for you.

Routing a message

By default the pusher "interest" messages will be sent to will be defined using the {notifiable}.{id} convention, for example App.User.1, however you can change this behaviour by including a routeNotificationForPusherPushNotifications() in the notifiable class method that returns the interest name.


Please see CHANGELOG for more information what has changed recently.


$ composer test


If you discover any security related issues, please email themsaid@gmail.com instead of using the issue tracker.


Please see CONTRIBUTING for details.



The MIT License (MIT). Please see License File for more information.