• 沙里软件

  • ShaliSoft.com [手机站]   办公桌收纳抽屉
  • 首页
  • 博文
  • 演示
  • 管理
  • 极光推送Jpush(v2)接口 服务端PHP版本的REST API推送类

    网络   2014/11/14 11:40:03

    在许多的手机App开发中推送是一个必须的应用。高大上的企业都会自己投入成本搭建自己的推送服务器,而小微企业则会选择一些服务商,使用他们的服务,减轻自己的运营和维护的成本。Jpush(极光推送)是目前比较火辣辣的一个推送服务商。对于初级用户可以免费使用。每分钟600次推送。对于小企业或者测试中的产品来说,基本上满足需求了。关于极光推送的相关文档或者简介,请移步极光推送官网 https://www.jpush.cn/

    这里适用的版本是v2版本的php接口api类。只需实例化之后传入指定参数即可实现推送。直接上代码

    //极光推送的类
    //文档见:http://docs.jpush.cn/display/dev/Push+API+v2#PushAPIv2-V
     
    /***使用示例
        $pushObj = new Jpush;
        //组装需要的参数
        $type = '2';    //2指定的tag 3指定的 alias 4广播
        $receive = '2401';
        $content = '爱曲靖标签推送....';
        $m_type = 'http';
        $m_txt = 'http://www.iqujing.com/';
     
        //调用推送,并处理
        $result = $pushObj->push($type,$receive,$content,$m_type,$m_txt);    
        $rt = json_decode($result);
        if($rt->errcode == '0'){     //推送成功
            //处理成功的推送......
        }else{                          //推送失败
            //处理失败的推送...失败的信息 在  $rt->errmsg 里
        }
     
    ***/
     
    class Jpush{
     
        public $app_key = 'd7fd***********c3642fc';         //待发送的应用程序(appKey),只能填一个。
        public $master_secret = 'a04**********4a80377';     //主密码
        public $url = "http://api.jpush.cn:8800/v2/push";       //推送的地址
         
        //若实例化的时候传入相应的值则按新的相应值进行
        public function __construct($app_key=null, $master_secret=null,$url=null) {
            if ($app_key) $this->app_key = $app_key;
            if ($master_secret) $this->master_secret = $master_secret;
            if ($url) $this->url = $url;
        }
     
        //$type 推送接收的类型 2.指定的Tag 3.指定的alias 4.广播:对app_key下的所有用户推送消息
        //$receiver 接收者的信息 2.支持多达10个 3.支持多达1000个 4.不用填
        //$content 推送的内容。
        //$m_type 推送附加字段的类型(可不填) http,tips,chat....
        //$m_txt 推送附加字段的类型对应的内容(可不填) 可能是url,可能是一段文字。
        public function push($type,$receiver,$content,$m_type='',$m_txt=''){
            $data = array();
            $data['sendno'] = time();
            $data['app_key'] = $this->app_key;
            $data['receiver_type'] = $type;         //推送接收的类型   
            $data['receiver_value'] = $receiver;
            $data['verification_code'] = strtoupper(md5( $data['sendno'].$data['receiver_type'].$data['receiver_value'].$this->master_secret));
            $data['msg_type'] = 1;          //1 通知(默认都是通知) 2 自定义消息
            $data['msg_content'] = json_encode(array(
                'n_builder_id'=>0,           //使用 极光Push SDK 的默认通知样式
                'n_title'=>'',               //不填则默认为应用的名称
                'n_content'=>$content,       //通知的内容
                'n_extras'=>array(
                    "ios"=>array("badge"=>1, "sound"=>"default", "content-available"=>1),
                    'type'=>$m_type,
                    'txt'=>$m_txt,
                )
            ));
            $data['platform'] = 'android,ios,winphone';     //目标用户终端手机的平台类型
            $data['apns_production'] = 1;                   //指定 APNS 通知发送环境:0: 开发环境,1:生产环境。
            if($type == '3'){       //点推的离线时间   
                $data['time_to_live'] = 600;                    //点推离线时间10分钟,聊天
            }else{
                $data['time_to_live'] = 86400;                  //保存离线时间的秒数默认为一天
            }
            $pushData = array();
            foreach($data as $k=>$v){
                $pushData[] = ($k .'=' . urlencode($v));
            }
            $pushData = implode('&',$pushData);
     
            $html = $this->pushCurl($this->url,$pushData);
            return $html;           //返回发送的状态返回信息
        }
     
     
        //执行CURL
        public function pushCurl($url,$pushData){
            $ch = curl_init();
            curl_setopt($ch, CURLOPT_URL, $url);
            curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
            curl_setopt($ch, CURLOPT_TIMEOUT, 5);
            curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-type:application/x-www-form-urlencoded'));
            curl_setopt($ch, CURLOPT_POST, true); 
            curl_setopt($ch, CURLOPT_POSTFIELDS,$pushData);
            $html = curl_exec($ch);
            curl_close($ch);
            return $html;
        }
     
     
    }


    阅读(1206) 分享(0)

    上一篇: 极光推送Jpush(v3)接口 服务端PHP版本的REST API推送类
    下一篇: js取小数点后两位方法大全

  • 精彩推荐

    ◆ 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    ◆ 怎么判断银行卡号格式是否正确?
    ◆ 接口限流算法总结
    ◆ asp.net中Eval()、Bind()、<%%>、<%=%>比较有什么区别
    ◆ ASP.NET 获取上个月当前月的1号和月尾
    ◆ MySQL 百万级分页优化(Mysql千万级分页)
    ◆ FORM提交表单,数据由gb2312传到utf-8 乱码的解决方案.
    ◆ 程序员"偷懒"给软件带来安全隐患
    ◆ 如何防止被人肉?防人肉宝典——平时上网应该注意什么?
    ◆ Python识别网站验证码
  • 用心做事 不能唯利是图

    • 吊儿
    • 用QQ联系我17905772
  • 搜索


  • 最新文章

    • 导出Excel 格式 mso-number-format
    • 服务器iis支持tls1.2,windows server 2008 r2 中IIS启用TLS 1.2(安装SSL后用TLS 1.2)
    • MySQL配置优化
    • EditPlus 添加文件比较工具winmerge
    • 滚动悬浮固定JS特效

  • 热门文章

    • php sso单点登录实现代码
    • 中国菜刀(China chopper) 最新黑客工具
    • redis.conf中文版(基于2.4)
    • 搜索引擎名单大全
    • php图片上传类,支持加水印,生成略缩图

  • 最新图库


  • 最新评论


  • 友情链接

  • 沙里软件

  • 最近访客

    Powered by ShaliSoft.com 豫ICP备13008529号

    免责声明:本站部分内容来源于互联网,转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,不为其版权负责,也不构成任何其他建议。如果发现侵犯版权,联系QQ17905772进行删除。