Heim  >  Artikel  >  php教程  >  乐视云直播 点播服务端api

乐视云直播 点播服务端api

PHP中文网
PHP中文网Original
2016-05-23 08:39:112205Durchsuche

php代码

<?php


class LeshiController 
{
    public $userid = &#39;&#39;;//用户id
    public $secret = &#39;&#39;;//私钥
    public $user_unique = &#39;&#39;;//用户唯一标识码,由乐视网统一分配并提供 UUID
    public $zhibo_apiurl = &#39;http://api.open.letvcloud.com/live/execute&#39;;//直播接口地址
    public $dianbo_apiurl = &#39;http://api.letvcloud.com/open.php&#39;;//点播接口地址
    public $zhibo_ver = &#39;3.0&#39;;//直播协议版本
    public $dianbo_ver = &#39;2.0&#39;;//点播协议版本
    
    public function __construct()
    {

    }
    /*
     * 直播api
     * $api_name string 直播接口名
     * $param array 直播参数
     */
    public function zhibo($api_name,$param=&#39;&#39;){
        $param[&#39;method&#39;] = $api_name;
        $res = $this->_sendZhiboApi($param);//请求接口
        return $res;
    }
    
    /*
     * 点播api
     * $api_name string 点播接口名
     * $param array 点播参数
     */
    public function dianbo($api_name,$param=&#39;&#39;){
        $param[&#39;api&#39;] = $api_name;
        $res = $this->_sendDianboApi($param);//请求接口
        return $res;
    }
    
    
    /*
     * 发送直播api请求
     */
    protected function _sendZhiboApi($param){
    
        $param[&#39;ver&#39;] = $this->zhibo_ver;//直播版本号
        $param[&#39;userid&#39;] = $this->userid;//用户数字id
        $param[&#39;timestamp&#39;] = time()*1000;//时间戳 毫秒
    
        $sign = $this->_getSign($param);//获取签名
    
        $param[&#39;sign&#39;] = $sign;
    
        $json = $this->_curlPost($this->zhibo_apiurl,$param);
    
        $res = json_decode($json,true);
        
        return $res;
    }
    
    /*
     * 发送点播api请求
     */
    protected function _sendDianboApi($param){
    
        $param[&#39;ver&#39;] = $this->dianbo_ver;//协议版本号,统一取值为2.0
        $param[&#39;user_unique&#39;] = $this->user_unique;//用户唯一标识码,由乐视网统一分配并提供
        $param[&#39;timestamp&#39;] = time()*1000;//当前Unix时间戳
        $param[&#39;format&#39;] = &#39;json&#39;;//返回参数格式:支持json和xml两种方式
    
        $sign = $this->_getSign($param);//获取签名
    
        $param[&#39;sign&#39;] = $sign;
    
        $json = $this->_curlPost($this->dianbo_apiurl,$param);
    
        $res = json_decode($json,true);
        
        if($res[&#39;code&#39;] == 0){
            return isset($res[&#39;data&#39;]) ? $res[&#39;data&#39;] : true;
        }
        
        return false;
    }
    
    
    
    /*
     * 	作用:生成签名
     */
    protected function _getSign($param)
    {
        //签名步骤一:按字典序排序参数
        ksort($param);
        
        $String = $this->_formatBizQueryParaMap($param);//拼接数组

        //签名步骤二:在string后加入KEY
        $String = $String.$this->secret;
 
        //签名步骤三:MD5加密
        $String = md5($String);
    
        return $String;
    }
    
    /*
     * 拼接数组
     */
    protected function _formatBizQueryParaMap($paraMap, $urlencode){
        $buff = "";
        ksort($paraMap);
        foreach ($paraMap as $k => $v){
            if($urlencode){
                $v = urlencode($v);
            }
            $buff .= $k . $v;
        }
        return $buff;
    }
    
    /*
     * 发送curl 请求
     */
    public function _curlPost($url,$data){
        
        $ch = curl_init();
        $header = "Accept-Charset: utf-8";
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
        curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
        curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
        curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
        curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
        $tmpInfo = curl_exec($ch);
        curl_close($ch);
        
        return $tmpInfo;
    }
    
}
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:php pdo连接数据库Nächster Artikel:删除目录下的所有文件