PHP application server implementation for Firebase Cloud Messaging.
- supports device and topic messages
- currently this app server library only supports sending Messages/Notifications via HTTP.
- thanks to guzzle our library answers in PSR7 compatible response objects
- see the full docs on firebase cloud messaging here : https://firebase.google.com/docs/cloud-messaging/
- Firebase Cloud Messaging HTTP Protocol: https://firebase.google.com/docs/cloud-messaging/http-server-ref#send-downstream for in-depth description
#Setup The recommended way of installing is using Composer.
command line
composer require php-fcm/php-fcm
composer.json
"require": {
"php-fcm/php-fcm": "*"
}
#Send to Device also see https://firebase.google.com/docs/cloud-messaging/downstream
use FCM\phpFCM\Client;
use FCM\phpFCM\Message;
use FCM\phpFCM\Recipient\Device;
use FCM\phpFCM\Notification;
require_once 'vendor/autoload.php';
$apiKey = 'YOUR SERVER KEY';
$client = new Client();
$client->setApiKey($apiKey);
$client->injectHttpClient(new \GuzzleHttp\Client());
$note = new Notification('test title', 'testing body');
$note->setIcon('notification_icon_resource_name')
->setColor('#ffffff')
->setBadge(1);
$message = new Message();
$message->addRecipient(new Device('your-device-token'));
$message->setNotification($note)
->setData(array('someId' => 111));
$response = $client->send($message);
var_dump($response->getStatusCode());
#Send to topic also see https://firebase.google.com/docs/cloud-messaging/topic-messaging
use FCM\phpFCM\Client;
use FCM\phpFCM\Message;
use FCM\phpFCM\Recipient\Topic;
use FCM\phpFCM\Notification;
require_once 'vendor/autoload.php';
$apiKey = 'YOUR SERVER KEY';
$client = new Client();
$client->setApiKey($apiKey);
$client->injectHttpClient(new \GuzzleHttp\Client());
$message = new Message();
$message->addRecipient(new Topic('your-topic'));
//select devices where has 'your-topic1' && 'your-topic2' topics
$message->addRecipient(new Topic(['your-topic1', 'your-topic2']));
$message->setNotification(new Notification('test title', 'testing body'))
->setData(array('someId' => 111));
$response = $client->send($message);
var_dump($response->getStatusCode());