This package makes sending notifications using Pushwoosh a breeze.
This make use of this package you need:
- Laravel 5.5 or higher
- PHP 7.0 or higher
- An active Pushwoosh subscription
To install this package run the following command:
composer require laravel-notification-channels/pushwoosh
Next, add the following lines to your config/services.php
:
'pushwoosh' => [
'application' => env('PUSHWOOSH_APP_CODE'),
'token' => env('PUSHWOOSH_TOKEN'),
],
You can now add the PUSHWOOSH_APP_CODE
(found here) and the
PUSHWOOSH_TOKEN
(found here) to your environment file.
Using this package, you can use Pushwoosh just like any other notification channel within Laravel. For more information about Laravel's notification system, see the official documentation.
In order for Pushwoosh to know to what devices it needs to send to, you will need to add the
routeNotificationForPushwoosh
to your notifiable model(s), for example:
class Customer extends Model
{
use Notifiable;
public function routeNotificationForPushwoosh()
{
return (new PushwooshRecipient)->device($this->device_id);
}
}
The routeNotificationForPushwoosh
method may return a string, an array of strings or a PushwooshRecipient
instance.
For more information about the PushwooshRecipient
class refer to the available methods section.
Sending a pushwoosh message is easy, add pushwoosh
to your notification's via method and implement the toPushwoosh
method, for example:
class WishlistItemOnSale extends Notification
{
public function via($notifiable)
{
return ['pushwoosh'];
}
public function toPushwoosh($notifiable)
{
return (new PushwooshMessage)
->content('Your wishlist item ' . $this->product->name . ' is on sale, get it now!')
->url(route('products.show', $this->product))
->deliverAt(Carbon::now()->addMinutes(10));
}
}
The toPushwoosh
method may return a string or an instance of the PushwooshMessage
class, for more information on the
PushwooshMessage
class refer to the available methods section.
This section details the public API of this package.
Below is a list of available methods on the PushwooshMessage
class.
Method | Description |
---|---|
campaign($campaign) |
Set the Pushwoosh campaign code |
content($content[, $language]) |
Set the message content (optionally for a specific language) |
deliverAt($when[, $timezone]) |
Set the delivery moment |
identifier($identifier) |
Set the Pushwoosh unique identifier (defaults to the notification ID) |
preset($preset) |
Set the Pushwoosh preset code |
throttle($limit) |
Throttle the rollout (100-1000 pushes per second) |
url($url[, $shorten]) |
Set the URL the message should link to |
useRecipientTimezone() |
Respect the recipients' timezone when delivering the message |
Below is a list of available methods on the PushwooshRecipient
class.
Method | Description |
---|---|
device($device[, ...]) |
Limit the delivery to the given device(s) |
platform($platform[, ...]) |
Limit the delivery to the given platform(s) |
user($user[, ...]) |
Limit the delivery to the given user(s) |
within($lat, $lng, $range) |
Limit the delivery to the given geo zone |
Below is a list of supported platforms, for the PushwooshRecipient::platform
method.
- Amazon
- Android
- Blackberry
- Chrome
- Firefox
- iOS
- Mac
- Safari
- Windows
- Windows Phone
Please see the changelog for more information on what has changed recently.
composer test
If you want to contribute to this package, take a look at the contribution guide.
This product is licensed under the MIT License (MIT). Please see the License File for more information.