PHP Firebase HTTP v1 API 新版推送

//最近一个公司项目需要对接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日

相关文章

  • Shell+Curl网站状态检查脚本 抓出无法访问的站点

    当我们做网站维护工作时,需要经常对网站进行状态监控,定期检测网站是否能正常访问、响应时间等。本篇攻略将介绍如何使用Shell和Curl命令来编写网站状态检查脚本,抓出无法访问的站点。 1. 脚本原理 该脚本通过使用Curl命令对指定站点进行请求,并返回http状态码进行判断,以此来检测网站是否能正常访问。如果请求失败或返回5xx状态码(服务器错误),则视为网…

    PHP 2023年5月27日
    00
  • php对关联数组循环遍历的实现方法

    PHP 中的关联数组是一种键值对的数据结构,键和值之间使用 => 符号定义。PHP 提供了多种方法来遍历关联数组,常用的方式包括 foreach 循环和 array_* 函数。 方法一:使用 foreach 循环PHP 中的 foreach 循环是最常用的遍历数组的方式,可以遍历索引数组、关联数组、以及混合数组。对于关联数组,foreach 循环的格式…

    PHP 2023年5月26日
    00
  • PHP实现简单的计算器

    下面是详细讲解如何使用PHP实现一个简单的计算器: 1. 准备工作 在开始之前,需要确保你已经安装好了 PHP 环境。这里我以 XAMPP 作为例子,如果你使用的是其他环境,请自行修改路径。 下载并安装 XAMPP,然后启动 Apache 和 MySQL; 将你的代码文件放在 htdocs 目录中,例如 C:\xampp\htdocs\calculator\…

    PHP 2023年5月23日
    00
  • PHP二维数组排序的3种方法和自定义函数分享

    下面我将详细讲解“PHP二维数组排序的3种方法和自定义函数分享”的完整攻略。 一、什么是PHP二维数组 PHP二维数组是指包含多个数组的数组,每个数组都具有相同的键名,但是具有不同的值。 例如: $arr=array( array("name"=>"Tom","age"=>18,&quo…

    PHP 2023年5月26日
    00
  • PHP实现多维数组转字符串和多维数组转一维数组的方法

    一、多维数组转字符串: 在PHP中实现多维数组转字符串的方法有如下两种: 1.递归方法 //递归遍历方法实现多维数组转字符串 function arrToStr($arr){ $str = ”; foreach($arr as $key=>$val){ if(is_array($val)){ $str.= arrToStr($val);//再次调用a…

    PHP 2023年5月26日
    00
  • php parse_str() 函数的定义和用法

    PHP parse_str() 函数的定义和用法: parse_str() 函数将 PHP 字符串解析成变量。 语法 parse_str(string $str, array $output ) 参数 参数 描述 $str 必需。规定要解析的字符串。 $output 可选。由解析得到数据所生成的变量名和它们的值组成的数组。 如果指定了 $output 参数,…

    PHP 2023年5月26日
    00
  • 定义php常量的详解

    下面是关于“定义PHP常量的详解”的完整攻略。 什么是常量 在程序中,常量是一种固定不变的量。与变量不同,常量一旦被定义就不能被修改或重新赋值。 定义常量 在 PHP 中,定义常量的语法如下所示: define(name, value, case-insensitive) 其中,name 表示常量的名称,value 表示常量的值,case-insensiti…

    PHP 2023年5月25日
    00
  • 云主机搭建php+mysql运行环境教程(护卫神 PHP套件)

    云主机搭建PHP+MySQL运行环境教程——护卫神PHP套件 前言 前几年随着互联网的发展,我们公司的业务也开始逐渐向线上转移。为了方便开发和部署,在一些小的项目中采用了PHP+MySQL的技术架构,因为其简单易懂,上手快。 但是在实际的开发中,我们遭遇了一些问题:服务器配置问题、PHP版本问题、MySQL版本问题等等。这些问题给我们带来了很多麻烦和困惑,于…

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