PHP
PHP调用vivo快应用消息推送接口
PHP通过curl方式调用vivo快应用消息推送
最近完成一个需求,因为需要用到vivo快应用消息推送接口,将这个过程分享给大家参考。
首先是我们的加密以及调用接口逻辑,代码如下:
/** * viVo密钥 * @param array $post * @param string $secret * @return string */ function viVoSign($post = array(), $secret = "") { //通过键进行排序 a,b,c ksort($post); $str = ''; //循环拼接参数 foreach ($post as $key => $value) { //拼接参数 $str .= $value; } $str = $str . $secret; //加密 $sign = strtolower(md5($str)); //返回 return $sign; } /** * 秒转毫秒 * @param $timestamp * @return string */ function msecToSec() { return sprintf('%.0f', time() * 1000); } /** * viVo请求发送 * @param $remote_server * @param $post_string * @param string $authToken * @return mixed */ function viVoRequestByCurl($remote_server, $post_string, $authToken = "") { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $remote_server); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); //根据情况展示 if ($authToken !== "") { curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'authToken:' . $authToken, 'Content-Type: application/json;charset=utf-8' )); } else { curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json;charset=utf-8' )); } curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $data = curl_exec($ch); curl_close($ch); return $data; }
然后需要调用接口获取accessToken,代码如下:
$appId = "自己的appId"; $appKey = "自己的appKey"; $secret = "自己的secret"; $url = "https://api-push.vivo.com.cn/message/auth"; $post['appId'] = $appId; $post['appKey'] = $appKey; $post['timestamp'] = msecToSec(); $sign = viVoSign($post, $secret); $post["sign"] = $sign; $post_string = json_encode($post); $res = viVoRequestByCurl($url, $post_string); $result = json_decode($res, true); if ($result["result"] == 0) { $authToken = $result["authToken"]; } else { $authToken = ""; }
拿到accessToken后,我们便可以发送消息推送,代码如下:
$url = "https://api-push.vivo.com.cn/message/send"; $post['regId'] = '用户的regId'; $post['alias'] = ''; $post['notifyType'] = 2; $post['title'] = '消息订阅'; $post['content'] = '欢迎使用小程序'; $post['skipType'] = 1; $post['skipContent'] = ''; $post['requestId'] = '20200901'; $post_string = json_encode($post); $res = viVoRequestByCurl($url, $post_string,"上一步拿到的accessToken");
这样我们就成功完成vivo快应用的消息推送,下一篇将给大家介绍华为快应用消息推送。
0条评论