Skip to content
This repository has been archived by the owner on Sep 9, 2020. It is now read-only.

laravel-notification-channels/gcm

Repository files navigation

Laravel GCM (Google Cloud Messaging) Notification Channel

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

This package makes it easy to send notifications using Google Cloud Messaging (GCM) with Laravel 5.8.

This package is based on ZendService\Google\Gcm, so please read that documentation for more information.

Google has deprecated/discontinued GCM as of April 11, 2019. As such, this package is also considered deprecated.

Contents

Installation

Install this package with Composer:

composer require laravel-notification-channels/gcm

Register the ServiceProvider in your config/app.php:

NotificationChannels\Gcm\GcmServiceProvider::class,

Setting up the GCM service

You need to register for a server key for Google Cloud Messaging for your App in the Google API Console: https://console.cloud.google.com/apis/

Add the API key to your configuration in config/broadcasting.php

'connections' => [
  ....
  'gcm' => [
      'key' => env('GCM_KEY'),
  ],
  ...
]

Usage

You can now send messages to GCM by creating a GcmMessage:

use NotificationChannels\Gcm\GcmChannel;
use NotificationChannels\Gcm\GcmMessage;
use Illuminate\Notifications\Notification;

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

    public function toGcm($notifiable)
    {
        return GcmMessage::create()
            ->title('Account approved')
            ->message("Your {$notifiable->service} account was approved!");
    }
}

In your notifiable model, make sure to include a routeNotificationForGcm() method, which return one or an array of tokens.

public function routeNotificationForGcm()
{
    return $this->gcm_token;
}

Available methods

  • title($str)
  • message($str)
  • priority(GcmMessage::PRIORITY_NORMAL or GcmMessage::PRIORITY_HIGH)
  • data($key, $mixed)
  • notification($key, $mixed)
  • action($action, $params) (Will set an action data key)

Changelog

Please see CHANGELOG for more information what has changed recently.

Testing

$ composer test

Security

If you discover any security related issues, please email info@fruitcake.nl 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.