<?php/** * 友盟消息 安卓 IOS 推送類 * */html' target='_blank'>class AlliesClass{ protected $host; //發送地址 protected $app_key; //appkey protected $appMasterSecret; //app secret protected $description; //app secret // public function __construct($options = null) { if (is_array($options)){ $this->host = 'https://msgapi.umeng.com/api/send'; $this->app_key = $options['app_key']; $this->appMasterSecret = $options['appMasterSecret']; $this->description = "友盟接口推送"; }else{ return false; } } /** * @param $info * @param $device_token * @return mixed|string * 用戶單播 和 列播 */ public function Android_Device_Push($info, $device_token) { $data['appkey'] = $this->app_key; $data['timestamp'] = time(); //時間戳 if(is_array($device_token)){ //批量用戶列播 $data['type'] = 'listcast'; $data['device_tokens'] = implode(',',$device_token); //數組轉字符串 }else{ //一個用戶單播 $data['type'] = 'unicast'; $data['device_tokens'] = $device_token; } //payload內容 $data['payload']['display_type'] = 'notification'; //通知消息 //payload body內容 $data['payload']['body']['after_open'] = "go_custom"; //后續操作打開app $data['payload']['body']['ticker'] = $info['ticker']; $data['payload']['body']['title'] = $info['title']; $data['payload']['body']['text'] = $info['title']; //廣播通知不能為空補填 //這里可以寫附加字段 $data['payload']['extra']['type'] = $info['type']; //附加字段類型 $data['production_mode'] = $info['production_mode']; $data['description'] = $this->description; return $this->send($data, $this->host, $this->appMasterSecret); } /** * @param $info * @return mixed|string * 廣播 */ public function Android_Broadcast($info) { $data['appkey'] = $this->app_key; $data['timestamp'] = time(); //時間戳 //廣播消息 $data['type'] = 'broadcast'; //payload內容 $data['payload']['display_type'] = 'notification'; //通知消息 //payload body內容 $data['payload']['body']['after_open'] = "go_custom"; //后續操作打開app $data['payload']['body']['ticker'] = $info['ticker']; $data['payload']['body']['title'] = $info['title']; $data['payload']['body']['text'] = $info['title']; //廣播通知不能為空補填 $data['payload']['extra']['type'] = $info['type']; //附加字段類型1 跳轉消息詳情 $data['payload']['extra']['prod_id'] = $info['prod_id']; //附加字段消息詳情id $data['payload']['extra']['text'] = $info['text']; // $data['production_mode'] = $info['production_mode']; $data['description'] = $this->description; return $this->send($data, $this->host, $this->appMasterSecret); } /** * @param $info * @param $device_token * @return mixed|string * 單播 和 列播 */ public function Ios_Device_Push($info, $device_token) { $data = array(); $data['appkey'] = $this->app_key; $data['timestamp'] = time(); //時間戳 if(is_array($device_token)){ //批量用戶列播 $data['type'] = 'listcast'; $data['device_tokens'] = implode(',',$device_token); //數組轉字符串 }else{ //一個用戶單播 $data['type'] = 'unicast'; $data['device_tokens'] = $device_token; } //payload內容 $data['payload']['aps']['alert'] = $info['text']; //消息主體 $data['payload']['aps']['sound'] = 'default'; //聲音 $data['payload']['type'] = $info['type']; //消息類型 0打開消息詳情 $data['payload']['prod_id'] = $info['prod_id']; //消息id $data['payload']['title'] = $info['title']; $data['payload']['text'] = $info['text']; // $data['production_mode'] = $info['production_mode']; $data['description'] = $this->description; return $this->send($data, $this->host, $this->appMasterSecret); } public function Ios_Broadcast($info) { $data = array(); $data['appkey'] = $this->app_key; $data['timestamp'] = time(); //時間戳 //廣播消息 $data['type'] = 'broadcast'; //payload內容 $data['payload']['aps']['alert'] = $info['title']; //消息主體 $data['payload']['aps']['sound'] = 'chime'; //聲音 $data['payload']['aps']['badge'] = 1; //顯示角標 $data['payload']['type'] = $info['type']; //消息類型 0打開消息詳情 $data['payload']['prod_id'] = $info['prod_id']; //消息id $data['payload']['title'] = $info['title']; $data['payload']['text'] = $info['ticker']; // $data['production_mode'] = $info['production_mode']; $data['description'] = $this->description; return $this->send($data, $this->host, $this->appMasterSecret); } /** * @param $data * @param $url_s * @param $appMasterSecret * @return mixed|string * curl 請求 */ private function send($data, $url_s, $appMasterSecret) { $postBody = json_encode($data); //加密 $sign = md5("POST" . $url_s . $postBody . $appMasterSecret); $url = $url_s . "?sign=" . $sign; $ch = curl_init($url); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 5); curl_setopt($ch, CURLOPT_TIMEOUT, 5); curl_setopt($ch, CURLOPT_POSTFIELDS, $postBody ); $result = curl_exec($ch); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); $curlErrNo = curl_errno($ch); $curlErr = curl_error($ch); curl_close($ch); // print_r($result); // exit; if ($httpCode == "0") { // Time out return ("Curl error number:" . $curlErrNo . " , Curl error details:" . $curlErr . "/r/n"); } else if ($httpCode != "200") { return ("Http code:" . $httpCode . " details:" . $result . "/r/n"); } else { return $result; } }}?>
<?php //使用類 $options['app_key'] = ''; //友盟key; $options['appMasterSecret'] = ''; //友盟MasterSecret $this->umeng = new AlliesClass($options); $info['ticker'] = ''; $info['title'] =''; $info['title'] =''; //廣播通知不能為空補填 $info['type'] = 4; //附加字段類型1 跳轉消息詳情 $info['text'] = '提醒'; // $info['production_mode'] = 'false'; $value=$this->umeng->Android_Device_Push($info, $token); //單播傳入數據和用戶token $value=$this->umeng->Android_Broadcast($info); //廣播直接傳入數據?>
以上就是本篇文章的全部內容了,感謝大家閱讀。更多請關注PHP !
相關推薦:
PHP房貸計算
PHP篩選法求素數
以上就是PHP 友盟消息推送類的詳細內容,更多請關注 其它相關文章!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。
新聞熱點
疑難解答