https://github.com/ker0x/fcm
📨 A PHP library to send push notification with Firebase Cloud Messaging
https://github.com/ker0x/fcm
fcm firebase firebase-cloud-messaging messaging notifications php php-libray push-notifications
Last synced: about 1 month ago
JSON representation
📨 A PHP library to send push notification with Firebase Cloud Messaging
- Host: GitHub
- URL: https://github.com/ker0x/fcm
- Owner: ker0x
- License: mit
- Created: 2016-10-07T22:49:25.000Z (over 9 years ago)
- Default Branch: main
- Last Pushed: 2024-02-15T09:42:26.000Z (about 2 years ago)
- Last Synced: 2025-12-11T04:33:37.389Z (3 months ago)
- Topics: fcm, firebase, firebase-cloud-messaging, messaging, notifications, php, php-libray, push-notifications
- Language: PHP
- Homepage:
- Size: 188 KB
- Stars: 18
- Watchers: 1
- Forks: 7
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
[](https://github.com/ker0x/fcm/actions/workflows/ci.yml)
[](https://codecov.io/gh/ker0x/fcm/)

[](https://packagist.org/packages/kerox/fcm)
[](https://packagist.org/packages/kerox/fcm)
[](https://github.com/ker0x/fcm/blob/main/LICENSE)
# Fcm
A PHP library to send push notification with [Firebase Cloud Messaging](https://firebase.google.com/docs/cloud-messaging/)
> [!NOTE]
> Version `3.x` of this library is a full rewrite using [PSR-18 HTTP Client](https://www.php-fig.org/psr/psr-18/) interface,
> which means that **no** HTTP Client, like [Guzzle](https://github.com/guzzle/guzzle) or [httplug](https://github.com/php-http/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
```php
use Kerox\Fcm\Fcm;
use Kerox\Fcm\Model\Message;
use Kerox\Fcm\Model\Notification\Notification;
use Kerox\Fcm\Model\Target;
$fcm = new Fcm('', '');
// 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](https://github.com/ker0x/fcm/wiki)
## 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.