Superbalist / laravel-appboy by superbalist

A Laravel library for sending push notifications via the Appboy API
414
1
35
Package Data
Maintainer Username: superbalist
Maintainer Contact: info@superbalist.com (Superbalist.com a division of Takealot Online (Pty) Ltd)
Package Create Date: 2017-05-30
Package Last Update: 2017-05-30
Language: PHP
License: MIT
Last Refreshed: 2020-10-15 15:35:31
Package Statistics
Total Downloads: 414
Monthly Downloads: 5
Daily Downloads: 0
Total Stars: 1
Total Watchers: 35
Total Forks: 0
Total Open Issues: 0

laravel-appboy

A Laravel library for sending push notifications via the Appboy API

Author Build Status StyleCI Software License Packagist Version Total Downloads

This package is a wrapper bridging php-appboy into Laravel.

Installation

composer require superbalist/laravel-appboy

Register the service provider in app.php

'providers' => [
    // ...
    Superbalist\LaravelAppboy\AppboyServiceProvider::class,
]

Register the facade in app.php

'aliases' => [
    // ...
    'Appboy' => Superbalist\LaravelAppboy\AppboyFacade::class,
]

The package has a default configuration which uses the following environment variables.

APPBOY_APP_GROUP_ID=null
APPBOY_API_URI=https://api.appboy.com

To customize the configuration file, publish the package configuration using Artisan.

php artisan vendor:publish --provider="Superbalist\LaravelAppboy\AppboyServiceProvider"

You can then edit the generated config at app/config/appboy.php.

Usage

use Appboy;
use Superbalist\Appboy\NotificationBuilder;
use Superbalist\Appboy\ScheduledNotificationBuilder;
use Superbalist\Appboy\Messages\AndroidMessageBuilder;
use Superbalist\Appboy\Messages\AppleMessageBuilder;

// send a push message
Appboy::sendMessage(
    (new NotificationBuilder())
        ->toUsers([1, 2])
        ->setCampaign('my_campaign')
        ->ignoreFrequencyCapping()
        ->setSubscriptionState('opted_in')
        ->withMessages([
            'apple_push' => (new AppleMessageBuilder())
                ->setAlert('Hello World!')
                ->setSound('custom_sound')
                ->withExtraAttributes(['is_test' => true])
                ->setCategory('shipping_notification')
                ->expiresAt(new \DateTime('2017-05-29 10:00:00', new \DateTimeZone('Africa/Johannesburg')))
                ->setUri('http://superbalist.com')
                ->setMessageVariation('group_a')
                ->setAsset('file://image.jpg', 'jpg')
                ->build(),
            'android_push' => (new AndroidMessageBuilder())
                ->setAlert('Hello World!')
                ->setTitle('Message Title')
                ->withExtraAttributes(['is_test' => true])
                ->setMessageVariation('group_a')
                ->setPriority(2)
                ->setCollapseKey('shipment_1234')
                ->setSound('custom_sound')
                ->setUri('http://superbalist.com')
                ->setSummaryText('This is a summary line')
                ->setTimeToLive(60)
                ->setNotificationId(18456)
                ->setPushIconImageUrl('http://link/to/asset.jpg')
                ->setAccentColour(16777215)
                ->build(),
        ])
        ->build()
);

// schedule a push message
Appboy::scheduleMessage(
    (new ScheduledNotificationBuilder())
        ->toUsers([1, 2])
        ->setCampaign('my_campaign')
        ->ignoreFrequencyCapping()
        ->setSubscriptionState('opted_in')
        ->withMessage(
            'apple_push',
            (new AppleMessageBuilder())
                ->setAlert('Hello World!')
                ->setSound('custom_sound')
                ->withExtraAttributes(['is_test' => true])
                ->setCategory('shipping_notification')
                ->expiresAt(new \DateTime('2017-05-29 10:00:00', new \DateTimeZone('Africa/Johannesburg')))
                ->setUri('http://superbalist.com')
                ->setMessageVariation('group_a')
                ->setAsset('file://image.jpg', 'jpg')
                ->build()
        )
        ->sendsAt(new \DateTime('2017-05-29 10:00:00', new \DateTimeZone('Africa/Johannesburg')))
        ->build()