guigpm / php-fcm
PHP应用服务器,用于谷歌Firebase云消息服务(FCM)
1.0
2019-03-12 19:01 UTC
Requires
- php: >=5.6
- guzzlehttp/guzzle: ^6.2
Requires (Dev)
- larapack/dd: 1.*
- mockery/mockery: 0.9.5
- php-coveralls/php-coveralls: ^2.1
- phpunit/phpunit: 4.8.*
README
phpFCM项目的分支。查看原始项目: https://github.com/Paragraph1/php-fcm
Firebase Cloud Messaging的应用服务器实现。
- 支持设备和主题消息
- 当前此应用服务器库仅支持通过HTTP发送消息/通知。
- 感谢guzzle,我们的库使用PSR7兼容的响应对象进行响应
- 有关Firebase云消息的完整文档请见此处: https://firebase.google.com/docs/cloud-messaging/
- Firebase Cloud Messaging HTTP协议: https://firebase.google.com/docs/cloud-messaging/http-server-ref#send-downstream(深入描述)
设置 建议使用Composer进行安装。
命令行
composer require guigpm/php-fcm
composer.json
"require": {
"guigpm/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); $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());