• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP 友盟消息推送类

php 搞代码 4年前 (2022-01-22) 22次浏览 已收录 0个评论

这篇文章主要介绍了关于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 <strong>)本文来(源gaodai#ma#com搞@@代~&码*网2</strong><pre>搞代gaodaima码

. " , 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);  //广播直接传入数据?>

搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP 友盟消息推送类
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址