php集成极光推送,php推送例子(第三方极光推送)
php是腳本語言所以在即時聊天中發揮不好,特別是用php當服務器向手機推送信息時,如果信息量有一點多,就會造成php服務器壓力山大,不過我們也可用第三方極光推送
我們只需要在極光網站上申請,然后就appkey記錄下來,寫在代碼里我這里是在thinkphp中測試的
| ?代碼如下 | 復制代碼 |
class ApipostAction extends Action{ /** * 模擬post進行url請求 * @param string $url * @param string $param */ private $_appkeys = ‘**********************’; private $_masterSecret = ‘**********************’; function request_post($url = ”, $param = ”) { if (empty($url) || empty($param)) { return false; } $postUrl = $url; $curlPost = $param; $ch = curl_init();//初始化curl curl_setopt($ch, CURLOPT_URL,$postUrl);//抓取指定網頁 curl_setopt($ch, CURLOPT_HEADER, 0);//設置header curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);//要求結果為字符串且輸出到屏幕上 curl_setopt($ch, CURLOPT_POST, 1);//post提交方式 curl_setopt($ch, CURLOPT_POSTFIELDS, $curlPost); $data = curl_exec($ch);//運行curl curl_close($ch); return $data; } /** * 發送 * @param int $sendno 發送編號。由開發者自己維護,標識一次發送請求 * @param int $receiver_type 接收者類型。1、指定的 IMEI。此時必須指定 appKeys。2、指定的 tag。3、指定的 alias。4、 對指定 appkey 的所有用戶推送消息。* @param string $receiver_value 發送范圍值,與 receiver_type相對應。 1、IMEI只支持一個 2、tag 支持多個,使用 “,” 間隔。 3、alias 支持多個,使用 “,” 間隔。 4、不需要填 * @param int $msg_type 發送消息的類型:1、通知 2、自定義消息 * @param string $msg_content 發送消息的內容。 與 msg_type 相對應的值 * @param string $platform 目標用戶終端手機的平臺類型,如: android, ios 多個請使用逗號分隔 */ function send($sendno = 0,$receiver_type = 1, $receiver_value = ”, $msg_type = 1, $msg_content = ”, $platform = ‘android’) { $url = ‘http://api.jpush.cn:8800/sendmsg/v2/sendmsg’; $param = ”; $param .= ‘&sendno=’.$sendno; $appkeys = $this->_appkeys; $param .= ‘&app_key=’.$appkeys; $param .= ‘&receiver_type=’.$receiver_type; $param .= ‘&receiver_value=’.$receiver_value; $masterSecret = $this->_masterSecret; $verification_code = md5($sendno.$receiver_type.$receiver_value.$masterSecret); $param .= ‘&verification_code=’.$verification_code; $param .= ‘&msg_type=’.$msg_type; $param .= ‘&msg_content=’.$msg_content; $param .= ‘&platform=’.$platform; $res = $this->request_post($url, $param); $res_arr = json_decode($res, true); if (intval($res_arr['errcode'])!=0){ return false; }else{ return true; } /*if ($res === false) { return false; } $res_arr = json_decode($res, true); $res_arr['errmsg']= “沒有錯誤信息”; switch (intval($res_arr['errcode'])) { case 0:$res_arr['errmsg'] = ‘發送成功’;?? break; case 10:$res_arr['errmsg'] = ‘系統內部錯誤’;break; case 1001:$res_arr['errmsg'] = ‘只支持 HTTP Post 方法,不支持 Get 方法’;break; case 1002:$res_arr['errmsg'] = ‘缺少了必須的參數’;break; case 1003:$res_arr['errmsg'] = ‘參數值不合法’;break; case 1004:$res_arr['errmsg'] = ‘驗證失敗’;break; case 1005:$res_arr['errmsg'] = ‘消息體太大’;break; case 1007:$res_arr['errmsg'] = ‘receiver_value 參數 非法’;break; case 1008:$res_arr['errmsg'] = ‘appkey參數非法’;break; case 1010:$res_arr['errmsg'] = ‘msg_content 不合法’;break; case 1011:$res_arr['errmsg'] = ‘沒有滿足條件的推送目標’;break; case 1012:$res_arr['errmsg'] = ‘iOS 不支持推送自定義消息。只有 Android 支持推送自定義消息’;break; default:break; } $msg_content = json_decode($msg_content,true); if (intval($res_arr['errcode'])==0){ $str= “ 第”.$res_arr['sendno'].”條發送”.$res_arr['errmsg'].”!”;}else{ $str= “ 第”.$res_arr['sendno'].”條發送失敗:”.$res_arr['errmsg'].””;} print_r($str);die();*/ } } ?> 調用 $receiver_value = 1;//接收者id和n_builder_id相同 $platform = ‘android,ios’;//在上面手機上接收 $msg_content = json_encode(array(‘n_builder_id’=>’1′, ‘n_title’=>’標題’, ‘n_content’=>’內容’,'n_extras’=>array(‘fromer’=>’發送者’,'fromer_name’=>’發送者名字’,'fromer_icon’=>’發送者頭像’,'image’=>’發送圖片鏈接’,'sound’=>’發送音樂鏈接’))); $this->send($sendno,3,$receiver_value,1,$msg_content,$platform); ?> | |
總結
以上是生活随笔為你收集整理的php集成极光推送,php推送例子(第三方极光推送)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: ica麦片为什么不能吃?
- 下一篇: 为什么有的黄油很浓,有的很稀呢?