laradevs/notifications-fcm
Composer 安装命令:
composer require laradevs/notifications-fcm
包简介
A package to send Firebase notification cross Laravel Application
README 文档
README
Notifications FCM
this package is forked from kawnkoding/laravel-fcm and adjustments and unit tests have been done for your work with queues and additional parameters
Installation
You can pull the package via composer :
$ composer require laradevs/notifications-fcm
Next, You must register the service provider :
// config/app.php 'Providers' => [ // ... LaraDevs\Fcm\FcmServiceProvider::class, ]
If you want to make use of the facade you must install it as well :
// config/app.php 'aliases' => [ // ... 'Fcm' => LaraDevs\Fcm\FcmFacade::class, ];
Next, You must publish the config file to define your FCM server key :
php artisan vendor:publish --provider="LaraDevs\Fcm\FcmServiceProvider"
This is the contents of the published file :
return [ /** * Set your FCM Server Key * Change to yours */ 'server_key' => env('FCM_SERVER_KEY', ''), 'server_endpoint' => env('FCM_SERVER_ENDPOINT', 'https://fcm.googleapis.com/fcm/send'), 'server_icon_app'=> env('FCM_ICON_APP') ];
importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-app.js'); importScripts('https://www.gstatic.com/firebasejs/3.9.0/firebase-messaging.js'); // Initialize Firebase var config = { apiKey: "YOUR-API-KEY", authDomain: "YOUR-DOMAIN", databaseURL: "YOUR-DATABASE-URL", projectId: "YOUR-PROJECT-ID", storageBucket: "YOUR-STORAGE-BUCKET", messagingSenderId: "YOUR-MESSAGING-SENDER", appId: "YOUR-APP-ID", measurementId: "YOUR-MEASURE-ID" }; firebase.initializeApp(config); const messaging = firebase.messaging();
Set your FCM Server Key in .env file :
APP_NAME="Laravel"
# ...
FCM_SERVER_KEY=putYourKeyHere
FCM_SERVER_ENDPOINT=putServerEndpointHere
FCM_ICON_APP=putIconNotification
Usage with JOBS
If you want to use FCM in a simple way, do it through the following JOB
FcmSendJob::dispatch('Hello World',['RECIPIENTS_IDs']);
If you want to use FCM with queues, please do as follows
FcmSendJob::dispatch('Hello World',['RECIPIENTS_IDs'])->onqueue('NAME_QUEUE');
Usage without JOBS
If You want to send a FCM with just notification parameter, this is an example of usage sending a FCM with only data parameter :
fcm() ->to($recipients) // $recipients must an array ->priority('high') ->timeToLive(0) ->data([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', ]) ->send();
If You want to send a FCM to topic, use method toTopic($topic) instead to() :
fcm() ->toTopic($topic) // $topic must an string (topic name) ->priority('normal') ->timeToLive(0) ->notification([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', ]) ->send();
If You want to send a FCM with just notification parameter, this is an example of usage sending a FCM with only notification parameter :
fcm() ->to($recipients) // $recipients must an array ->priority('high') ->timeToLive(0) ->notification([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', ]) ->send();
If You want to send a FCM with both data & notification parameter, this is an example of usage sending a FCM with both data & notification parameter :
fcm() ->to($recipients) // $recipients must an array ->priority('normal') ->timeToLive(0) ->data([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', ]) ->notification([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', ]) ->send();
Customize the icon and action, doing the following :
fcm() ->to($recipients) // $recipients must an array ->priority('normal') ->timeToLive(0) ->data([ 'title' => 'LaradevTest', 'body' => 'This tests laraDevs', 'icon' => 'Your URL public to icon', 'click_action'=>'action click' ]) ->send();
laradevs/notifications-fcm 适用场景与选型建议
laradevs/notifications-fcm 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 55 次下载、GitHub Stars 达 1, 最近一次更新时间为 2020 年 03 月 20 日, 在 PHP 生态内属于活跃度较高的组件。
我们在过去多个企业项目中使用过 laradevs/notifications-fcm 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 laradevs/notifications-fcm 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
统计信息
- 总下载量: 55
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 2
- 点击次数: 0
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2020-03-20