ahmadsafar/pusher-push-notifications

Pusher native Push Notifications driver.

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Maintainers

👁 ahmadsafar

Package info

github.com/ahmadsafar/pusher-push-notifications

Homepage

pkg:composer/ahmadsafar/pusher-push-notifications

Statistics

Installs: 3 567

Dependents: 0

Suggesters: 0

Stars: 0

1.0.3 2017-05-25 14:37 UTC

Requires

Requires (Dev)

Suggests

None

Provides

None

Conflicts

None

Replaces

None

MIT 9aa8eb1c12f24171f95666c46f14c24b514ec186

notificationslaravelpusherpusher-push-notifications

This package is not auto-updated.

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


README

👁 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.

Contents

Installation

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' => [
 ...
 NotificationChannels\PusherPushNotifications\PusherPushNotificationsServiceProvider::class,
],

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.

Usage

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()
 ->iOS()
 ->badge(1)
 ->sound('success')
 ->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()
 ->iOS()
 ->badge(1)
 ->body($message)
 ->withAndroid(
 PusherMessage::create()
 ->title($message)
 ->icon('icon')
 );
}
  • 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.

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.