mrgarest/laravel-firebase-sender

用于通过 Firebase Cloud Messaging (FCM) 发送通知的 Laravel 库

1.0.0 2024-09-26 11:17 UTC

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');