kawankoding/laravel-fcm

本包最新版(0.2.9)没有提供许可证信息。

一个用于在 Laravel 应用程序中发送 Firebase 通知的包

0.2.9 2024-05-07 11:42 UTC

README

一个简单的包,帮助您使用 Laravel 应用程序发送 Firebase 通知

安装

您可以通过 composer 获取此包

$ composer require kawankoding/laravel-fcm "^0.2.0"

Laravel

您必须注册服务提供者

// config/app.php

'Providers' => [
   // ...
   Kawankoding\Fcm\FcmServiceProvider::class,
]

如果您想使用外观,也必须安装它

// config/app.php

'aliases' => [
    // ...
    'Fcm' => Kawankoding\Fcm\FcmFacade::class,
];

接下来,您必须发布配置文件以定义您的 FCM 服务器密钥

php artisan vendor:publish --provider="Kawankoding\Fcm\FcmServiceProvider"

这是已发布文件的正文

return [

    /**
     * Set your FCM Server Key
     * Change to yours
     */

    'server_key' => env('FCM_SERVER_KEY', ''),

];

Lumen

将以下服务提供者添加到 bootstrap/app.php 文件中

$app->register(Kawankoding\Fcm\FcmServiceProvider::class);

同时将配置文件 laravel-fcm.php 复制到 config/laravel-fcm.php

将配置添加到 bootstrap/app.php 文件中 重要: 这需要在注册服务提供者之前完成

$app->configure('laravel-fcm');
...
$app->register(Kawankoding\Fcm\FcmServiceProvider::class);

.env 文件中设置您的 FCM 服务器密钥

APP_NAME="Laravel"
# ...
FCM_SERVER_KEY=putYourKeyHere

方法参考

  • ->to()

  • ->toTopic()

  • ->data()

  • ->notification()

  • ->priority()

  • ->timeToLive()

  • ->enableResponseLog()

  • ->send()

使用方法

如果您只想发送带有通知参数的 FCM,以下是一个仅使用数据参数发送 FCM 的示例

$recipients = [
    'clKMv.......',
    'GxQQW.......',
];

fcm()
    ->to($recipients)
    ->priority('high')
    ->timeToLive(0)
    ->data([
        'title' => 'Test FCM',
        'body' => 'This is a test of FCM',
    ])
    ->send();

注意:默认情况下,Firebase 服务器将在 4 周内排队您的通知。您可以通过设置 ->timeToLive(value_in_seconds) 来更改此行为。例如,上面的代码片段 "->timeToLive(0)" 将跳过队列,目标设备(例如,android)必须在通知到达时在线,否则目标设备将不会收到通知。

如果您想向主题发送 FCM,请使用方法 toTopic($topic) 而不是 to()

fcm()
    ->toTopic($topic) // $topic must an string (topic name)
    ->priority('normal')
    ->timeToLive(0)
    ->notification([
        'title' => 'Test FCM',
        'body' => 'This is a test of FCM',
    ])
    ->send();

如果您只想发送带有通知参数的 FCM,以下是一个仅使用通知参数发送 FCM 的示例

fcm()
    ->to($recipients) // $recipients must an array
    ->priority('high')
    ->timeToLive(0)
    ->notification([
        'title' => 'Test FCM',
        'body' => 'This is a test of FCM',
    ])
    ->send();

如果您想同时发送带有数据和通知参数的 FCM,以下是一个同时使用数据和通知参数发送 FCM 的示例

fcm()
    ->to($recipients) // $recipients must an array
    ->priority('normal')
    ->timeToLive(0)
    ->data([
        'title' => 'Test FCM',
        'body' => 'This is a test of FCM',
    ])
    ->notification([
        'title' => 'Test FCM',
        'body' => 'This is a test of FCM',
    ])
    ->send();

日志记录

要查看 Firebase 的原始响应,请在调用 send() 方法之前调用 enableResponseLog() 方法。

fcm()
    ->to($recipients)
    // ...
    ->enableResponseLog()
    ->send();

然后您可以在文件 storage/logs/laravel.log 中检查响应日志。