enjoy-it/php-fcm

PHP应用服务器,用于谷歌Firebase云消息服务(FCM)

v1.1.2 2021-12-15 07:24 UTC

This package is auto-updated.

Last update: 2024-09-15 13:33:18 UTC


README

Firebase Cloud Messaging的PHP应用服务器实现。

设置 建议使用Composer进行安装。

命令行

composer require paragraph1/php-fcm

composer.json

"require": {
    "paragraph1/php-fcm": "*"
}

发送到设备,也请参阅 https://firebase.google.com/docs/cloud-messaging/downstream

use paragraph1\phpFCM\Client;
use paragraph1\phpFCM\Message;
use paragraph1\phpFCM\Recipient\Device;
use paragraph1\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());

发送到主题,也请参阅 https://firebase.google.com/docs/cloud-messaging/topic-messaging

use paragraph1\phpFCM\Client;
use paragraph1\phpFCM\Message;
use paragraph1\phpFCM\Recipient\Topic;
use paragraph1\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());

订阅设备到主题

use paragraph1\phpFCM\Client;

$apiKey = '_YOUR_SERVER_KEY_';
$client = new Client();
$client->setApiKey($apiKey);

$response = $client->addTopicSubscription('_SOME_TOPIC_ID_', ['_FIRST_TOKEN_', '_SECOND_TOKEN_']);
var_dump($response->getStatusCode());
var_dump($response->getBody()->getContents());

从主题移除设备

use paragraph1\phpFCM\Client;

$apiKey = '_YOUR_SERVER_KEY_';
$client = new Client();
$client->setApiKey($apiKey);

$response = $client->removeTopicSubscription('_SOME_TOPIC_ID_', ['_FIRST_TOKEN_', '_SECOND_TOKEN_']);
var_dump($response->getStatusCode());
var_dump($response->getBody()->getContents());