PHP Firebase HTTP v1 API 新版推送

yizhihongxing
//最近一个公司项目需要对接firebase推送,官方文档就是谢特,再网上找了很多大神的资料,还是有很多坑,把自己踩的坑记录一下.字数
字数
字数
字数
字数
+++++++++++++++++
use Google\Client;
/**
* 注意需要准备vpn
* 1.安装sdk composer require google/apiclient:^2.12.1
* 2.firebase推送,如要本地调试需找到vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php 中 applyHandlerOptions 方法,设置$options['verify'] = false;
* @param $param ['title'=>推送标题,'body'=>推送信息]
* @param $token 设备token
* @return bool|string
*/
public function send($param, $token)
{
$client = new Client();
$client->useApplicationDefaultCredentials();
$client->setAuthConfig($this->app->getRootPath() . 'public/path/to/xxxx-xxxx-3f599409d1e3.json');//引入json秘钥
$client->setScopes('https://www.googleapis.com/auth/firebase.messaging'); # 授予访问 FCM 的权限
// 你的 Firebase 项目 ID
$project = "firebase-aca99";
$send_url = "https://fcm.googleapis.com/v1/projects/{$project}/messages:send";
$access_token = $client->fetchAccessTokenWithAssertion();//获取秘钥
if (!isset($access_token['access_token'])) {
Log::error('推送失败,未获取到秘钥');
return false;
}
$accessToken = $access_token['access_token'];//秘钥
//推送参数
$params = [
"message" => [
"token" => $token, //需要发送的设备号
"notification" => $param
]
];
//header请求头,$accessToken 就是你上面获取的令牌
$header = [
'Content-Type: application/json',
'Authorization: Bearer ' . $accessToken,
];
$response = http_post($send_url, json_encode($params), ['headers' => $header]);
$response = json_decode($response,true);
if(isset($response['name'])){
return true;
}elseif(isset($response['error'])){
Log::error("推送失败:{$response['error']['code']},{$response['error']['message']}");
return false;
}

原文链接:https://www.cnblogs.com/aiyinsitan/p/16968237.html

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PHP Firebase HTTP v1 API 新版推送 - Python技术站

(0)
上一篇 2023年4月18日
下一篇 2023年4月18日

相关文章

  • PHP中ltrim()函数的用法与实例讲解

    下面是PHP中ltrim()函数的用法与实例讲解的完整攻略。 1. ltrim()函数简介 ltrim()函数是PHP中的字符串处理函数之一,用于截取字符串左边的空字符串或指定字符。该函数的完整语法如下: ltrim(string,charlist) 其中,string表示要进行处理的字符串;charlist表示用于删除的字符列表,默认情况下会删除空格、换行…

    PHP 2023年5月26日
    00
  • PHP实现文件上传和下载的示例代码

    以下是“PHP实现文件上传和下载的示例代码”的完整攻略: 文件上传 第一步:编写前端上传表单 首先,在HTML文件或PHP中编写上传表单,以便用户可以选择需要上传的文件并将其发送到服务器。 <form action="upload.php" method="post" enctype="multipar…

    PHP 2023年5月23日
    00
  • PHP简单读取xml文件的方法示例

    当我们需要读取xml文件并且使用PHP进行处理时,PHP提供了一些内置的函数和类来轻松读取和解析XML数据。下面将介绍一些PHP简单读取xml文件的方法示例。 1. 使用SimpleXML扩展 SimpleXML是一个PHP扩展,提供一组类来解析和处理XML文档。使用SimpleXML可以轻松的遍历和检索XML文件中的元素和属性。 示例1: 读取XML文件,…

    PHP 2023年5月26日
    00
  • phpt文件内容解析

    phpt测试文件说明 phpt文件用于PHP的自动化测试,这是PHP用自己来测试自己的测试数据用例文件。 测试脚本通过执行PHP源码根目录下的run-tests.php,读取phpt文件执行测试。 phpt文件包含 TEST,FILE,EXPECT 等多个段落的文件。在各个段落中,TEST、FILE、EXPECT是基本的段落, 每个测试脚本都必须至少包括这三…

    PHP 2023年4月19日
    00
  • PHP中的函数– foreach()的用法详解

    PHP中的函数– foreach()的用法详解 1. foreach()函数的基本语法 在PHP中,foreach()函数是一个用于遍历数组元素的函数,它的基本语法如下: foreach ($array as $value) { // 在这里对$value进行操作 } 其中,$array是要遍历的数组,$value则是遍历过程中得到的每个数组元素的值。在循…

    PHP 2023年5月26日
    00
  • php实现的AES加密类定义与用法示例

    下面我将详细讲解“PHP实现的AES加密类定义与用法示例”的攻略。 简介 AES是一种对称密钥加密算法,目前广泛使用于各类系统中。在PHP中实现AES加密需要用到openssl扩展。本文将介绍如何在PHP中实现AES加密,并提供一个封装好的AES加密类。 安装openssl扩展 PHP实现AES加密需要安装openssl扩展,如果已经安装则可忽略此步骤。可以…

    PHP 2023年5月26日
    00
  • 微信etc怎么激活?微信etc使用教程详解

    微信etc怎么激活? 要使用微信等线上支付方式支付ETC费用,需要先完成ETC账户的激活过程。具体步骤如下: 打开 “全国客户服务热线” 所在的省客服电话,完成ETC账户实名认证。 获得ETC账户名、密码和交易密码后,拨打客服电话进行账户激活。 微信etc使用教程详解 完成ETC账户激活后,就可以使用微信等线上支付方式进行ETC费用缴纳了。具体步骤如下: 打…

    PHP 2023年5月23日
    00
  • php简单获取复选框值的方法

    php简单获取复选框值的方法 在HTML表单中,复选框(checkbox)常用于允许用户选择多个选项。在PHP中,可以使用$_POST超级全局变量来获取复选框的值。复选框的值将作为一个数组提交,所以需要使用循环来遍历获取选中的值。 获取复选框选中的值 <?php if(isset($_POST[‘submit’])) { if(!empty($_POS…

    PHP 2023年5月26日
    00
合作推广
合作推广
分享本页
返回顶部