gerinsp/firepush

用于向 FCM (Firebase Cloud Messaging) 发送推送通知的包

v1.0.0 2023-05-10 02:26 UTC

This package is auto-updated.

Last update: 2024-09-11 19:56:29 UTC


README

用于向 FCM (Firebase Cloud Messaging) 发送推送通知的 Laravel 包

该包已上传至 Packagist,您可以通过以下链接访问:[packagist.org](https://packagist.org.cn/packages/gerinsp/firepush)(外部链接)

安装方法

composer require gerinsp/firepush

配置

安装包成功后,您需要在 config/app.php 文件中的服务提供者目录下注册它

如何注册服务提供者

Gsp\Firepush\FirepushServiceProvider::class

将以下代码行添加到 config/app.php [providers] 部分中

例如

'providers' => [
  .....
  Gsp\Firepush\FirepushServiceProvider::class
],

注册服务提供者成功后,接下来发布配置文件

php artisan vendor:publish --tag=firepush-config

请确保在您的项目配置目录中存在 firepush.php 文件。然后,将您 Firebase 项目的 server_key 添加到 .env 文件中

FIREBASE_SERVER_KEY='your_server_key'

使用方法

配置成功后,我们只需要导入命名空间并调用类。

<?php

use Gsp\Firepush\PushNotification;

class class HomeController extends Controller
{
  ....
  PushNotification::sendPush($regis_id, $title, $body, $icon, $url);
}

在 sendPush() 方法中,有 5 个参数,分别是

  1. regis_id,用于向特定用户发送通知,该 regis_id 是由 Firebase 提供的设备 id。
  2. title,是我们将要发送的通知的标题。
  3. body,是我们将要发送的通知的消息内容。
  4. icon,是当通知在移动设备上接收时将显示的图标。(可选)
  5. url,是用户点击通知时将导航到的浏览器 URL。(可选)

此外,我们还可以接收 Firebase 的响应以了解通知是否已发送。

例如

$response = PushNotification::sendPush($regis_id, $title, $body, $icon, $url);

然后我们只需保存响应即可。

成功响应示例

{
  "multicast_id":9070918413037267170,
  "success":1,
  "failure":0,
  "canonical_ids":0,
  "results":[
    {
      "message_id":"0:1683778122791572%4d6e21f0f9fd7ecd"
    }
  ]
}

如果成功,则响应中的 "success" 为 true,并且存在 "message_id"

失败响应示例

{
  "multicast_id":6600435569629740876,
  "success":0,
  "failure":1,
  "canonical_ids":0,
  "results":[
    {
      "error":"NotRegistered"
    }
  ]
}

但是,如果失败,则响应中的 "success" 为 false,而 "failure" 为 true。请注意,如果响应失败,则可能是因为 regis_id 已经过期,因此请定期更新 regis_id

许可证

该项目采用 MIT 许可证