欧畅云直播API

2021-06-10  本文已影响0人  zlchen
<?php

class OCYLive
{
    // http://doc.finezb.com/web/#/1?page_id=1 欧畅API使用指南
    // https://www.iamwawa.cn/daxiaoxie.html 英文字母大小写转换
    
    private $api_urls = [
        // 直播间管理
        'Live'=>[
            'GetToken' => 'https://api.finezb.com/2.0/GetToken', // 获取AccessToken
            'CreateLiveRoom' => 'https://api.finezb.com/2.0/CreateLiveRoom', // 创建直播间
            'GetLiveRoom' => 'https://api.finezb.com/2.0/GetLiveRoom', // 查询直播间
            'ModifyLiveRoom ' => 'https://api.finezb.com/2.0/ModifyLiveRoom', // 编辑直播间
            'DelLiveRoom' => 'https://api.finezb.com/2.0/DelLiveRoom', // 删除直播间
            'GetLiveRooms' => 'https://api.finezb.com/2.0/GetLiveRooms ', // 查询直播间列表
            'GetClientAddress' => 'https://api.finezb.com/2.0/GetClientAddress', // 获取客户端地址
            'GetRoomContext' => 'https://api.finezb.com/2.0/GetRoomContext',// 直播间状态查询
            'SetLiveRoomConfig' => 'https://api.finezb.com/2.0/SetLiveRoomConfig', // 配置直播间信息
            'GetLiveConfig' => 'https://api.finezb.com/2.0/GetLiveConfig', // 查询直播间信息
            'SendMessage' => 'https://api.finezb.com/2.0/SendMessage', // 直播间消息发送
            'SetLiveStreamStatus' => 'https://api.finezb.com/2.0/SetLiveStreamStatus', // 直播间禁流
            
        ],
        // 录制管理 
        'Record'=>[
            'StartRecording' => 'https://api.finezb.com/2.0/StartRecording ', // 保存录制
            'GetRecordings' => 'https://api.finezb.com/2.0/GetRecordings ', // 录制列表
            'DelRecoding' => 'https://api.finezb.com/2.0/DelRecoding ', // 删除录播
            'GetRecording' => 'https://api.finezb.com/2.0/GetRecording ', // 录制信息
        ]
    ];
    
    // 错误码
    private $error_code = [
        
        '200' => '调用成功',
        '401' => '认证失败.无效的token', 
        '500' => '系统异常', 
        '411' => '无效许可',
        '417' => '接口超过每天room最大访问次数', 
        '419' => '接口超过每天app最大访问次数', 
        '420'  => '没有权限访问此资源', 
        '1001' =>  '无效的录播id', 
        '1003'  => '无效的录播时间,三天前的录播不能生成',
        '1005'  => '无效的开始录播时间,开始时间不能在最后一次调用时间之前', 
        '2001'  => '无效的主播室ID', 
        '2002' =>  '主播室不存在', 
        '2003'  => 'room password 重复', 
        '2004'  => 'room password 非法', 
        '2005'  => 'roomName非法', 
        '2007'  => '聊天室id为空',
        '2009'  => '人数已满', 
        '20010'  => '控制房间流状态失败', 
        '20011'  => '房间数超过上限,用户没有认证时会有该限制', 
        '20013' =>  '没有直播回看', 
        '3001'  => '用户账户已过期', 
        '3003'  => '暂停服务', 
        '3004' =>  'appkey不存在', 
        '3005'  => '旧密码错误,修改密码时要做旧密码验证', 
        '3006'  => '域名没有cname,自有域名绑定时要检查域名是否cname', 
        '4001'  => '附件重复', 
        '5001' => '点播视频后缀不正确', 
        '5002' => '点播视频上传失败', 
        '8001' => '图片上传失败', 
        '8003'  => '房间分享图片上传失败', 
        '8005'  => '房间封面图片上传失败', 
        '8007' => '主播室水印图片上传失败', 
        '9001'  => '直播记录id为空', 
        '9002'  => '无效的直播记录id', 
        '13001' => '时间格式错误', 
        '14001' => '导出文件上传文件服务器失败', 
        '14002' => '导出文件生成中', 
        '15001'  => '上传礼品图片失败', 
        '15002'  => '无效的礼品id' 

    ];
    
    private $config = [
            "scope"=>'app',
            "username"=>'{username}',
            "password"=>'{password}',
    ];
    
    private $header = ['Content-Type:application/json'];
    
    private $access_token;
    
    function __construct()
    {
        $api_urls = $this->api_urls;
        $header = $this->header;
        $config = $this->config;
        
        $this->access_token = json_decode($this->http_requests($api_urls['Live']['GetToken'],$header,$config),true);
    }
    
    public function http_requests($url,$header= array(),$data = array())
    {
        $oCurl = curl_init();
        curl_setopt($oCurl, CURLOPT_URL, $url);
        curl_setopt($oCurl, CURLOPT_HTTPHEADER, $header);
        //关闭https验证
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($oCurl, CURLOPT_SSL_VERIFYHOST, false);
        $data = json_encode( $data ,JSON_UNESCAPED_UNICODE );
 
        curl_setopt($oCurl,CURLOPT_POST,true);
        curl_setopt($oCurl,CURLOPT_POSTFIELDS,$data);
 
        //至关重要,CURLINFO_HEADER_OUT选项可以拿到请求头信息
        curl_setopt($oCurl, CURLINFO_HEADER_OUT, TRUE);
        curl_setopt($oCurl, CURLOPT_RETURNTRANSFER, 1);
 
        //curl_setopt($oCurl, CURLOPT_POSTFIELDS, $bodystr);
        $sContent = curl_exec($oCurl);
        //通过curl_getinfo()可以得到请求头的信息
        $a=curl_getinfo($oCurl);
        return $sContent;
        //var_dump($sContent);die;
    }
    
    // getApiUrls
    public function getApiUrls()
    {
        return json_encode($this->api_urls);
    }
    
    // getAccessToken
    public function getAccessToken()
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetToken'];
        $header = $this->header;
        $config = $this->config;
        $res = $this->http_requests($url,$header,$config);
        return $res;
    }
    
    // #######################################直播管理#######################################
    // CreateLiveRoom 
    public function CreateLiveRoom($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['CreateLiveRoom'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetLiveRoom 
    public function GetLiveRoom($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetLiveRoom'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // ModifyLiveRoom 
    public function ModifyLiveRoom($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['ModifyLiveRoom'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // DelLiveRoom 
    public function DelLiveRoom($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['DelLiveRoom'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetLiveRooms 
    public function GetLiveRooms($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetLiveRooms'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetClientAddress 
    public function GetClientAddress($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetClientAddress'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetRoomContext 
    public function GetRoomContext($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetRoomContext'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // SetLiveRoomConfig 
    public function SetLiveRoomConfig($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['SetLiveRoomConfig'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetLiveConfig 
    public function GetLiveConfig($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['GetLiveConfig'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // SendMessage 
    public function SendMessage($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Live']['SendMessage'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // #######################################录播管理#######################################
    
    // StartRecording 
    public function StartRecording($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Record']['StartRecording'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetRecordings 
    public function GetRecordings($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Record']['GetRecordings'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // DelRecoding 
    public function DelRecoding($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Record']['DelRecoding'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
    // GetRecording 
    public function GetRecording($data)
    {
      
        $api_urls = $this->api_urls;
        $url = $api_urls['Record']['GetRecording'];
        $header = $this->header;
        $access_token_arr = $this->access_token;
        $access_token = $access_token_arr['accessToken'];
        $header[] = "Authorization:$access_token";
    
        $res = $this->http_requests($url,$header,$data);
        return $res;
    }
    
}
上一篇 下一篇

猜你喜欢

热点阅读