翼度科技»论坛 编程开发 PHP 查看内容

PHP Firebase HTTP v1 API 新版推送

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
  1. //最近一个公司项目需要对接firebase推送,官方文档就是谢特,再网上找了很多大神的资料,还是有很多坑,把自己踩的坑记录一下,平时都是伸手党,这次回馈一下
复制代码
  1. use Google\Client;
复制代码
  1. /**<br> * 注意需要准备vpn<br> * 1.安装sdk composer require google/apiclient:^2.12.1<br> * 2.firebase推送,如要本地调试需找到vendor/guzzlehttp/guzzle/src/Handler/CurlFactory.php 中 applyHandlerOptions 方法,设置$options['verify'] = false;<br> * @param $param ['title'=>推送标题,'body'=>推送信息]<br> * @param $token 设备token<br> * @return bool|string<br> */<br>public function send($param, $token)<br>{<br>    $client = new Client();<br>    $client->useApplicationDefaultCredentials();<br>    $client->setAuthConfig($this->app->getRootPath() . 'public/path/to/xxxx-xxxx-3f599409d1e3.json');//引入json秘钥<br>    $client->setScopes('https://www.googleapis.com/auth/firebase.messaging');     # 授予访问 FCM 的权限<br>    // 你的 Firebase 项目 ID<br>    $project      = "firebase-aca99";<br>    $send_url     = "https://fcm.googleapis.com/v1/projects/{$project}/messages:send";<br>    $access_token = $client->fetchAccessTokenWithAssertion();//获取秘钥<br>    if (!isset($access_token['access_token'])) {<br>        Log::error('推送失败,未获取到秘钥');<br>        return false;<br>    }<br>    $accessToken = $access_token['access_token'];//秘钥<br>    //推送参数<br>    $params = [<br>        "message" => [<br>            "token"        => $token, //需要发送的设备号<br>            "notification" => $param<br>        ]<br>    ];<br>    //header请求头,$accessToken 就是你上面获取的令牌<br>    $header = [<br>        'Content-Type: application/json',<br>        'Authorization: Bearer ' . $accessToken,<br>    ];<br>    $response = http_post($send_url, json_encode($params), ['headers' => $header]);<br>    $response = json_decode($response,true);<br>    if(isset($response['name'])){<br>        return true;<br>    }elseif(isset($response['error'])){<br>        Log::error("推送失败:{$response['error']['code']},{$response['error']['message']}");<br>        return false;<br>    }
复制代码
来源:https://www.cnblogs.com/aiyinsitan/p/16968237.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具