kerox/fcm

A PHP library to send push notification through Firebase Cloud Messaging

3.2.0 2024-02-15 09:41 UTC

This package is auto-updated.

Last update: 2024-12-07 10:50:31 UTC


README

Tests Coverage PHP Version Download Packagist License

Fcm

A PHP library to send push notification with Firebase Cloud Messaging

Note

Version 3.x of this library is a full rewrite using PSR-18 HTTP Client interface, which means that no HTTP Client, like Guzzle or httplug, are provided within. If you already have one in your project, the package will automatically discover it and use it. Otherwise You will need to require one separately.

Warning

Version 3.2 introduce a BC break. The signature of the __construct() method of the Kerox\Fcm\Model\Message class has changed, with the $notification parameter becoming the third argument and being optional.

Installation

You can install Fcm using Composer:

composer require kerox/fcm

You will then need to:

  • run composer install to get these dependencies added to your vendor directory
  • add the autoloader to your application with this line: require('vendor/autoload.php');

Basic usage

use Kerox\Fcm\Fcm;
use Kerox\Fcm\Model\Message;
use Kerox\Fcm\Model\Notification\Notification;
use Kerox\Fcm\Model\Target;

$fcm = new Fcm('<oauth_token>', '<project_id>');

// Create the message
$message = new Message(
    target: new Token('TopicA'),
    data: [
        'story_id' => 'story_12345',
    ],
    notification: new Notification(
        title: 'Hello World',
        body: 'My awesome Hello World!'
    ),
)

// Send the message and get the response
$response = $fcm->send()->message($message);

Documentation

The documentation is available here

Testing

To live test the package, you must first generate an OAuth token. Go to https://developers.google.com/oauthplayground/ and select Firebase Cloud Messaging API v1 from the list of APIs. Then select https://www.googleapis.com/auth/firebase.messaging and generate the OAuth token. Finally, define an environment variable named FCM_OAUTH_TOKEN and assign it the value of the access token.