saikatdutta1991 / firebasecloudmessaging
此包的最新版本(1.0.0)没有可用的许可证信息。
这是一个用于使用Firebase云消息发送推送通知的Laravel包。已在Laravel 5.2.*中进行测试。
1.0.0
2017-03-19 08:07 UTC
This package is not auto-updated.
Last update: 2024-09-18 21:09:53 UTC
README
** 注意:此包已不再维护。
此包用于通过Firebase云消息向设备发送推送通知。已在Laravel 5.1和5.2中测试。
# 安装
在Laravel项目根目录中运行以下命令即可安装此包:
php composer.phar require saikatdutta1991/firebasecloudmessaging:1.0.0
添加服务提供者
'providers' => [ /* * Laravel Framework Service Providers... */ ..... ..... \Saikat\FirebaseCloudMessaging\FCMServiceProvider::class ]
到 config\app.php providers 数组中
在 config/app.php 文件中别名 PushManager 类,将其添加到别名数组中。
'aliases' => [ ... 'PushManager' => Saikat\FirebaseCloudMessaging\PushManager::class ]
但别名不是强制的。
配置
使用以下命令将包配置发布到您的Laravel配置文件夹:
php artisan vendor:publish --tag="config"
在执行此命令之前,请先添加服务提供者。
在 config/firebase_cloud_messaging.php 文件中添加 fcm server_key。
return [ "server_key" => env('FIREBASE_CLOUD_MESSAGING_SERVER_KEY'), "fcm_push_url" => env("FIREBASE_CLOUD_MESSAING_URL") ];
fcm_push_url 不需要,已包含在包中。如果需要覆盖,则添加它。
使用
## 包含 PushManager
如果已添加别名,则在控制器中使用它
use PushManager;
如果没有添加别名,则在控制器中使用它
use Saikat\FirebaseCloudMessaging\PushManager;
## 控制器构造函数中的依赖注入
class YourController extends Controller { public function __construct(PushManager $pushManager) { $this->pushManager = $pushManager; }
如果您想不进行注入而使用它,则
class YourController extends Controller { public function sendPushNotification() { $pushManager = app('PushManager'); // this will keep the PushManager instance singleton }
示例
<?php namespace App\Http\Controllers; use Illuminate\Routing\Controller; use PushManager; class Controller extends Controller { public function __construct(PushManager $pushManager) { $this->pushManager = $pushManager; } public function sendPushNotification() { $response = $this->pushManager ->setTitle('Test Title') ->setBody('Test Body') ->setIcon('icon url') ->setClickAction('https://www.google.com') ->setCustomPayload(['custom_data' => 'custom_data_array']) ->setPriority(PushNotification::HIGH) ->setContentAvailable(true) ->setDeviceTokens('--------------------') // this can be an array or string ->push(); dd( $response ); } }
要更改响应
->push(PushManager::STDCLASS)
PushManager::STDCLASS,PushManager::ARRY,PushManager::RAW
默认响应为 PushManager::RAW 设置
错误处理
===============
$this->pushManager->getLastErrorCode() //if no error then 0
和
$this->pushManager->getLastErrorMessage() // if no error then ""
未来增强
======================
目前只有原始响应正常工作。JSON和stdClas响应对于所有类型的fcm响应都不工作。如果失败进行JSON解码,则返回null。
我将使发送推送通知异步,这样就不必等待响应