autoxloo/fcm
Composer 安装命令:
composer require autoxloo/fcm
包简介
Sends push notification via Firebase Cloud Messaging Server
README 文档
README
Sends push notification via Firebase Cloud Messaging Server
Note: This package is not supported properly
Installation
The preferred way to install this extension is through composer.
Either run
php composer.phar require --prefer-dist autoxloo/fcm "*"
or
composer require --prefer-dist autoxloo/fcm "*"
or add
"autoxloo/fcm": "*"
to the require section of your composer.json file.
Usage
To send push notification you should have private key file for your service account.
To generate a private key file for your service account:
- In the Firebase console, open Settings > Service Accounts.
- Click Generate New Private Key, and confirm by clicking Generate Key.
$projectId = 'autoxloo'; // id of your project created in firebase console $serviceAccountFilePath = __DIR__ . '/service_account.json'; // path to your generated private key file for your service account
Sending push notification:
$fcm = new FirebaseCloudMessaging($projectId, $serviceAccountFilePath); $response = $fcm->send($message); // $message is instance of \autoxloo\fcm\message\Message // $response is instance of \GuzzleHttp\Psr7\Response
Complete example:
// initial data: $projectId = 'autoxloo'; $serviceAccountFile = __DIR__ . '/service_account.json'; $token = 'some device token'; $name = 'Some name'; $title = 'Some title'; $body = 'Some body'; $data = [ 'some key1' => 'some value1', 'some key2' => 'some value2', ]; // sending push notification: $target = FCMFacade::createTargetToken($token); // only target is required $notification = FCMFacade::createNotification($title, $body); $androidConfig = FCMFacade::createAndroidConfig([AndroidConfig::FIELD_PRIORITY => AndroidConfig::PRIORITY_HIGH]); $message = FCMFacade::createMessage(); $message->setTarget($target) ->setName($name) ->setData($data) ->setNotification($notification) ->setAndroidConfig($androidConfig); $fcm = new FirebaseCloudMessaging($projectId, $serviceAccountFile); $response = $fcm->send($message); // $response is instance of \GuzzleHttp\Psr7\Response
Or
$messageConfig = [ // required one of: token, topic or condition Message::FIELD_TOKEN => $token, // or Message::FIELD_TOPIC => $topic or Message::FIELD_CONDITION => $condition // not required values: Message::FIELD_NAME => $name, Message::FIELD_DATA => $data, Message::FIELD_NOTIFICATION => FCMFacade::createNotification($title, $body), Message::FIELD_ANDROID => FCMFacade::createAndroidConfig([ AndroidConfig::FIELD_PRIORITY => AndroidConfig::PRIORITY_HIGH ]), ]; $message = FCMFacade::createMessage($messageConfig); $fcm = new FirebaseCloudMessaging($projectId, $serviceAccountFile); $response = $fcm->send($message); // $response is instance of \GuzzleHttp\Psr7\Response
Target
You can use target one of:
TargetTokenTargetTopicTargetCondition
To create use facade:
$targetToken = FCMFacade::createTargetToken('some token'); $targetTopic = FCMFacade::createTargetTopic('some topic'); $targetCondition = FCMFacade::createTargetCondition('some condition');
See Firebase Build App Server Send Requests for more details.
Note: TargetCondition and TargetTopic was not tested properly.
autoxloo/fcm 适用场景与选型建议
autoxloo/fcm 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 7.03k 次下载、GitHub Stars 达 0, 最近一次更新时间为 2018 年 09 月 06 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 autoxloo/fcm 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 autoxloo/fcm 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 7.03k
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 1
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2018-09-06