欧畅云直播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;
}
}