您好,欢迎访问一九零五行业门户网

PHP 友盟消息推送类

这篇文章主要介绍了关于php 友盟消息推送类,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下
<?php /** * 友盟消息 安卓 ios 推送类 * */ 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 友盟消息推送类的详细内容。
其它类似信息

推荐信息