mrgarest / laravel-firebase-sender
用于通过 Firebase Cloud Messaging (FCM) 发送通知的 Laravel 库
1.0.0
2024-09-26 11:17 UTC
Requires
- php: >=8.1
- google/auth: ^1.40
- laravel/framework: ^10.0|^11.0
This package is auto-updated.
Last update: 2024-09-26 11:48:54 UTC
README
Laravel 库,用于通过 Firebase Cloud Messaging (FCM) 发送通知。
❗️ 此库仅适用于新的 FCM HTTP v1 API ❗️
安装
您可以通过 composer 安装此包
composer require mrgarest/laravel-firebase-sender
配置
安装包后,您需要发布配置文件 firebase-sender.php
php artisan vendor:publish --tag=firebase-sender-config
发布配置文件后,您需要打开它并添加从 Firebase 控制台中获取的服务账户数据。
如果您不知道如何获取服务账户,这里有一个 YouTube 视频教程。
使用方法
发送简单群组通知的示例。
$firebaseSender = new FirebaseSender('MY_SERVICE_ACCOUNT_NAME'); $firebaseSender->setTopic('MY_TOPIC'); $firebaseSender->setTitle('Hello world'); $firebaseSender->setBody('This is my first message using Laravel Firebase Sender'); $firebaseSender->send();
要向特定设备发送通知,请使用 setTokenDevices(string $token) 而不是 setTopic(string $topic)。
多语言通知
要发送本地化通知,您需要使用您应用程序本地化文件中的键。
$firebaseSender = new FirebaseSender('MY_SERVICE_ACCOUNT_NAME'); $firebaseSender->setTopic('MY_TOPIC'); $firebaseSender->setTitleLocKey('hello_world'); $firebaseSender->setBodyLocKey('first_message', ['Laravel Firebase Sender']); $firebaseSender->send();
Android 应用中本地化文件的示例
<string name="hello_world">Hello world</string> <string name="first_message">This is my first message using %1$s</string>
%1$s — 将被数组中的第一个参数替换。
通知日志
如果您想使用已发送通知的日志,您还需要发布迁移文件并执行迁移。
php artisan vendor:publish --tag=firebase-sender-migrations
php artisan make:migration
要添加通知信息到日志中,您需要在发送通知之前使用一个额外的方法
$firebaseSender->setDatabaseLog();
此方法也可以接受一个额外的字符串类型的值,例如,可以用来检查通知是否带有特定参数发送,以避免重复通知。
$firebaseSender->setDatabaseLog('TEST_VALUE');
要检查日志中是否存在额外值,您可以使用此方法
$isValue = FirebaseSenderLog::isValue('TEST_VALUE', 'MY_TOPIC');
您也可以通过日期范围检查额外值
$isValue = FirebaseSenderLog::isValueByTimeRange(Carbon::now()->subMinutes(30), 'TEST_VALUE', 'MY_TOPIC');
您也可以检查在特定时间范围内是否发送了通知
$isValue = FirebaseSenderLog::isToByTimeRange(Carbon::now()->subMinutes(30), 'MY_TOPIC');