PaaS API文档草稿箱

快速开始    

API简介

  • 微吼云API服务,是通过微吼云对外提供的安全,低成本,高可用的服务,用户可以通过本文档提供的接口,在任何时间、任何地点、任何互联网设备上进行调用。基于微吼云API,用户可以搭建出各种基于视频的应用。

接入步骤

步骤1 : 注册开发者

1、申请开通微吼云账号

2、联系运营人员,提供资料,开通开发者认证

步骤2 :接入前准备

1、登录微吼云控制台

2、创建应用

  • 进入控制台后,创建应用位于右上角头像下面,填写应用名称和应用简介、选择用用类型后 保存即可创建应用

3、开通服务

  • 创建应用后会默认开通直播服务,可根据自身业务形态,选择开通点播服务、文档服务以及聊天服务
  • 开通服务按钮位于应用管理应用的下方,点击后选择对应开通的即可

4、获取app_id、secret_key

  • 获取方式: 控制台->对应应用->设置->应用信息
  • 应用创建完毕后,微吼云服务会对应用颁发app_id和secret_key,app_id用以标识应用信息,secret_key为 双方加密的通讯秘钥为微吼云和用户本身持有,请妥善保管

步骤3 : 开始接入

1、签名函数集成

2、根据服务接入API

API调用方式    

API 调用方式

对API 的调用是通过向 API 的服务端地址发送 HTTP GET 请求,并按照接口说明在请求中加入相应请求参数来完成的。根据请求的处理情况,系统会返回处理结果。

主要根据以下四点来说明:

  • 调用结构

  • 公共参数

  • 返回结果

  • 签名机制

请求结构【改1】    

请求结构

服务地址

API服务器地址
api.yun.vhall.com/api/v1

通信协议

API通信支持HTTP和HTTPS通道,可根据服务需要自行选择

字符编码

请求及返回结果都使用 UTF-8 字符集进行编码。

公共参数【改1】    

公共参数

  • 公共参数包括 公共请求参数、公共返回参数以及公共错误码部分。

公共请求参数

  • 是指每个接口都需要使用到的请求参数。
参数 类型 是否必选 含义
app_id string 应用ID,微吼云会给开发者应用颁发应用标识和秘钥信息 控制台->对应应用->设置->应用信息
signed_at string 当前UTC时间戳,从1970年1月1日0点0分0秒开始到现在的秒数
sign string 签名结果串,关于签名的计算方法,请参见 签名机制

公共返回参数

  • 用户发送的每次接口调用请求,无论成功与否,系统都会返回一个code给用户。
  • 如无特殊说明,接口中的出参均为data中的数据
参数 类型 是否必选 含义
code int 返回结果的状态码 (200 成功)
msg string 当返回结果的状态码不为200时,包含的错误信息
data json 返回的结果集
  • JSON
{
    "code": 200,  // 返回结果状态码
    "msg": "",      // 错误信息
    "data": {       // 返回结果数据
        "room_id": "lss_69178ce4"
    }
}

公共错误码

参数 类型 含义
10001 int 应用ID不能为空
10002 int 鉴权时间不能为空
10003 int 鉴权签名不能为空
20001 int 应用查询为空
20003 int 开发者不存在
30004 int 接口鉴权失败
30003 int 当前开发者尚未通过认证

返回结果【改1】    

返回结果

  • 调用 API 服务后返回数据采用统一格式,返回的 HTTP 状态码为 2xx,代表调用成功。返回 4xx 或 5xx 的 HTTP 状态码代表调用失败。

  • 本文档中的返回示例为了便于用户查看,做了格式化处理,实际返回结果是没有进行换行、缩进等处理的。

成功结果

  • 调用成功返回的数据为JSON格式
  • JSON 示例
{
    "code": 200,  // 返回结果状态码
    "msg": "",      // 错误信息
    "data": {       // 返回结果数据
        "room_id": "lss_69178ce4"
    }
}

错误结果

  • 调用接口出错后,将不会返回结果数据。调用方可根据接口中对应的错误码查找原因。

  • 当调用出错时,HTTP 请求返回一个 4xx 或 5xx 的 HTTP 状态码。可以联系微吼云客服,提供具体的请求参数以便我们尽快帮您解决问题。

签名机制【改1】    

签名机制

  • API服务会对每个访问的请求进行身份验证,所以无论使用 HTTP 还是 HTTPS 协议提交请求,都需要在请求中包含签名(sign)信息。通过使用app_id、secret_key以及参数信息进行MD5摘要运算来验证请求的发送者身份。

  • app_id和secret_key 由微吼云官方颁发给访问者( 控制台->对应应用->设置->应用信息),其中:

  • app_key 用于标识应用的信息。

  • secret_key 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密,只有微吼云和用户知道。

用户在访问时,按照下面的方法对请求进行签名处理:

1 、按照参数名称的字典顺序对请求中所有的请求参数(包括文档中描述的“公共请求参数”和给定了的请求接口的自定义参数,但不能包括“公共请求参数”中提到 sign 参数本身)进行排序。

  • 注意:当使用GET方法提交请求时,这些参数就是请求URI中的参数部分(即 URI 中“?”之后由“&”连接的部分)。 对请求中所有参数(包括app_id)进行字典序排序。
  • javaScript代码示例
	// 用户秘钥
	var secret_key = "f145b675f441cc00dd3e55746a0f4780";
	
	// 用户参数
	var param = {
		"room_id" : "lss_5b2cef",
		"app_id" : "3eb7261"
	}
	
	// 按名称字段排序后结果是
	param = {
		"app_id" : "3eb7261"
		"room_id" : "lss_5b2cef",
	}

2、 按 键值键值 方式拼接成字符串。

  • javaScript代码示例
	// 用户参数来自上一个例子
	// 拼接出来的字符串就是
	var signParam = "app_idlss_5b2cefroom_idlss_5b2cef"

3 、在此字符串首尾各拼接一次secret_key。

  • javaScript代码示例
	// 用户参数来自上一个例子
	 signParam="f145b675f441cc00dd3e55746a0f4780app_idlss_5b2cefroom_idlss_5b2ceff145b675f441cc00dd3e55746a0f4780"

4 、对拼接后的字符串进行md5,得到sign。

  • javaScript代码示例
	// 用户参数来自上一个例子
	signParam=md5("f145b675f441cc00dd3e55746a0f4780app_idlss_5b2cefroom_idlss_5b2ceff145b675f441cc00dd3e55746a0f4780")
	
signParam = "e316af53a0dc14d42209fcad750a78c9";

5 、将得到的sign作为请参数之一传递。

  • javaScript代码示例
	// 用户参数来自上一个例子
	param['sign'] =  "e316af53a0dc14d42209fcad750a78c9";
	// 添加sign后,为最终的请求参数

6 、VOP服务器收到所有参数后,根据app_id取得对应的secret_key,然后依照同样的算法计算sign。验证与传递的sign是否一致。

  • 完整代码流程以PHP代码为例
// 由微吼云提供
$secret_key = "f145b675f441cc00dd3e55746a0f4780";

// 用户参数示例
$params = [
    "room_id"=> "123456789",
    "app_id"=> "3eb7261",
    "signed_at"=> "1484620708"
];

// 按参数名升序排列
ksort($params);

// 初始化签名字串
$sign = '';

// 将键值组合连接到签名字串上
foreach ($arr as $k => $v) {
$sign .= $k.$v;
}

// 将签名字串前后两端加上秘钥进行MD5运算
$sign = md5($secret_key.$str.$secret_key);

// 将sign签名放到请求数据中
$params["sign"] = $sign;
  • 签名函数以PHP代码为例
    /**
     * 获取API签名
     * @param array $arr
     * @param $secret_key
     * @return string
     */
	function sign( array $arr, $secret_key ) {
		// 去除因重复调用可能产生的sign字段
		unset($arr['sign']);
		
		// 按键名称排序
		ksort($arr);
		
		// 初始化签名字串
		$str = '';
		
		// 将键值组合连接到签名字串上
		foreach ($arr as $k => $v) {
			$str .= $k.$v;
		}
		// 将签名字串前后两端加上秘钥
		$str = $secret_key.$str.$secret_key;
		
		// 返回MD5运算后的结果
		return md5($str);
    }

基础API    

生成AccessToken【改1】    

生成AccessToken

API 地址

api.yun.vhall.com/api/v1/base/create-access-token

描述

用于SDK权限校验,accessToken即权限,调用接口生成accessToken将传入SDK,SDK在请求时会附带accessToken, SDK将按您赋予的权限进行相关的权限验证,如果您同时集成多个服务,可在入参时传入相应服务的权限值

入参

参数 类型 是否必选 含义
third_party_user_id string 第三方用户ID
expire_time string 过期时间 默认为一天,最大为一天 格式为 2017/01/01 00:00:00
publish_stream string 推流权限 对应房间ID (通过直播API 创建房间接口获得)
chat string 发聊天权限 对应频道ID (通过消息API 创建频道接口获得)
operate_document string 演示文档操作权限 对应频道ID (通过消息API 创建频道接口获得)

参数示例

{
	third_party_user_id : "vhall_user_nelsonking", // 第三方用户ID
	expire_time : 2017/01/01 00:00:00, // 过期时间
	publish_stream : "lss_af793b0e,lss_b328234c", // 推流: “房间ID”
	chat : "ch_af793b0e,ch_cb593b12",// 发聊天: “频道ID”
	operate_document : "ch_2ca93b03,ch_eb493b22",// 演示文档操作: “频道ID”
}
// 各权限对应的值为其权限类别的资源ID
// 权限列表可有多个,无先后顺序
// 多个资源ID,请使用英文逗号分割

出参

参数 类型 是否必选 含义
access_token string token 令牌

错误码

错误码 类型 含义
10012 int 第三方用户ID不能为空
40004 int 时间类型不正确
40003 int 没有该权限类型 资源ID
30005 int 不是这些房间拥有者 房间ID
30006 int 不是这些频道拥有者

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "access_token": ""
    }
}

销毁AccessToken【改1】    

销毁AccessToken

API 地址

api.yun.vhall.com/api/v1/base/destroy-access-token

描述

用来销毁AccessToken,当AccessToken泄露时或其他情况,可通过销毁来保证资源的安全性

入参

参数 类型 是否必选 含义
access_token string 访问令牌

出参

参数 类型 是否必选 含义
destory_token string 销毁的AccessToken

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
		"destory_token" : "access:app_id_1:jfalsiecnm"
	]
}

直播API    

创建房间【改1】    

创建房间

API 地址

api.yun.vhall.com/api/v1/room/create

描述

房间,视频流的载体,创建房间后,可使用房间发起直播

入参

参数 类型 是否必选 含义

出参

参数 类型 是否必选 含义
room_id string 房间ID

错误码

错误码 类型 含义

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "room_id": "lss_69178ce4"
    }
}

封停房间【改1】    

封停房间

API 地址

api.yun.vhall.com/api/v1/room/disable

描述

当视频被认为是违规或其他情况,封停接口,可使视频流不在分发,观看端无法继续挂看

入参

参数 类型 是否必选 含义
room_id string 房间ID

出参

参数 类型 是否必选 含义
disable_room_id string 封停房间ID

错误码

错误码 类型 含义
20002 int 房间查询为空
30001 int 不是当前房间拥有者
50001 int 系统更新错误

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "disable_room_id": "lss_87dfa7ef"
    }
}

解封房间【改1】    

解封房间

API 地址

api.yun.vhall.com/api/v1/room/enable

描述

和封停房间对应,解除对房间的封停

入参

参数 类型 是否必选 含义
room_id string 房间ID

出参

参数 类型 是否必选 含义
enable_room_id string 解封房间ID

错误码

错误码 类型 含义
20002 int 房间查询为空
30001 int 不是当前房间拥有者
50001 int 系统更新错误

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "enable_room_id": "lss_87dfa7ef"
    }
}

删除房间【改1】    

删除房间

API 地址

api.yun.vhall.com/api/v1/room/delete

描述

删除房间,和创建房间对应

入参

参数 类型 是否必选 含义
room_id string 房间ID

出参

参数 类型 是否必选 含义
delete_room_id string 解封房间ID

错误码

错误码 类型 含义
20002 int 房间查询为空
30001 int 不是当前房间拥有者
50002 int 系统删除失败

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "delete_room_id": "lss_87dfa7ef"
    }
}

房间列表【改1】    

房间列表

API 地址

api.yun.vhall.com/api/v1/room/lists

描述

按当前公共参数传入app_id对应的应用,获取房间列表

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000

出参

参数 类型 是否必选 含义
room_id string 房间ID
app_id string app_id
is_disable int 是否禁停房间 0 非禁停 1 禁停
created_at string 创建时间

错误码

错误码 类型 含义
40008 int 分页起始提条目不正确
40009 int 分页条目不正确
20002 int 房间查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "room_id": "lss_314eaf4b",
            "app_id": "app_id_1",
            "is_disable": 0,
            "created_at": "2017-12-01 21:27:09"
        },
        {
            "room_id": "lss_b42cd4bd",
            "app_id": "app_id_1",
            "is_disable": 0,
            "created_at": "2017-12-04 11:01:16"
        },
        {
            "room_id": "lss_b88e1673",
            "app_id": "app_id_1",
            "is_disable": 0,
            "created_at": "2017-12-04 11:18:54"
        }
    ]
}

获取推流信息【改1】    

获取推流信息

API 地址

api.yun.vhall.com/api/v1/room/get-push-info

描述

微吼云房间支持使用第三方推流工具推流,通过接口可以获取推流地址

入参

参数 类型 是否必选 含义
room_id string 房间ID
expire_time string 过期时间 格式 2017/01/01 00:00:00

出参

参数 类型 是否必选 含义
stream_number string 直播码
push_address string 推流地址信息

错误码

错误码 类型 含义
10026 int 过期时间不能为空
20002 int 房间查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "stream_number": "lss_75ba2dcf",
        "push_address": "rtmp://t-open-push.live.vhou.net:1935/vhall?vhost=indexVhost?token=3D93913Dt24FA1?webinar_id=lss_75ba2dcf?ismix=0?mixserver=?accesstoken=vhall"
    }
}

配置直播转码【改1】    

配置直播转码

API 地址

api.yun.vhall.com/api/v1/room/set-trans-code-info

描述

开通直播服务后,微吼云不会对视频流进行转码,可通过接口配置需要转码的清晰度

  • 清晰度配置针对应用配置,如果多个应用都需要,需要分别配置

入参

参数 类型 是否必选 含义
rate string 转换清晰度 多个清晰度以英文逗号分开,清晰度见下面列表 eg : 360P,720P

清晰度列表

参数 类型 含义
360P string 分辨率360P 码率330kb
480P string 分辨率480P 码率450kb
720P string 分辨率720P 码率650kb

出参

参数 类型 是否必选 含义
rate string 配置的清晰度

错误码

错误码 类型 含义
10024 int 转码配置不能为空
40010 int 转码类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "rate": "360P,720P"
    }
}

配置开启直播录制 【改1】    

配置开始直播录制

API 地址

api.yun.vhall.com/api/v1/room/set-record-info

描述

通过API配置后可以在直播在推流结束后调用点播API生成点播文件

  • 配置开始录制针对应用配置,如果多个应用都需要,需要分别配置

入参

参数 类型 是否必选 含义
open_record int 是否开启直播录制 0 关闭 1 开启

出参

参数 类型 是否必选 含义
open_record int 配置的是否开启值

错误码

错误码 类型 含义
10025 int 是否开启配置不能为空
40011 int 配置开启录制类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "open_record": "1"
    }
}

获取直播流量数据【改1】    

获取直播流量数据

API 地址

api.yun.vhall.com/api/v1/room/get-stream-flow

描述

按当前传入app_id对应的应用,获取直播流量数据

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
flow list 按天获取的流量使用列表 (单位为 KB)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "flow": {
            "2017-12-11": "0",
            "2017-12-12": "20400",
            "2017-12-13": "0",
        }
    }
}

获取直播带宽数据【改】    

获取直播宽带数据

API 地址

api.yun.vhall.com/api/v1/room/get-stream-board-band

描述

按当前公共参数传入app_id对应的应用,获取直播宽带数据

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
bandwidth list 按天获取的宽带使用列表 (单位为 KB)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "bandwidth": {
            "2017-12-11": "0",
            "2017-12-12": "0",
        }
    }
}

获取直播流信息【改1】    

获取直播流信息

API 地址

api.yun.vhall.com/api/v1/room/get-stream-msg

描述

获取房间下直播流的流信息

入参

参数 类型 是否必选 含义
room_id string 房间ID

出参

参数 类型 是否必选 含义
rate string 流帧率

错误码

错误码 类型 含义
20002 int 房间查询为空
30001 int 不是当前房间拥有者
20008 int 当前流没有推起

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "rate": "0fps"
    }
}

获取正在推流的房间【改1】    

获取正在推流的房间列表

API 地址

api.yun.vhall.com/api/v1/room/get-pushing-stream-list

描述

按当前公共参数传入app_id对应的应用,获取正在推流的房间列表

入参

参数 类型 是否必选 含义

出参

参数 类型 是否必选 含义
room_list list 房间列表

错误码

错误码 类型 含义

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "room_list": [
            "lss_497541895",
            "lss_af793b0e",
        ]
    }
}

获取直播属性信息【新】    

获取直播属性信息

API 地址

api.yun.vhall.com/api/v1/room/get-room-use-info

描述

获取直播房间的流量、宽带、pv、uv以及观看时长

入参

参数 类型 是否必选 含义
room_id string 房间ID
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
flow int 流量 单位(KB)
bandwidth int 带宽 单位 (kbps)
pv_num int pv
uv_num int uv
tt int 总观看时长 单位 (秒)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
20011 int 房间使用信息查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "flow": 15015,
            "bandwidth": 330,
            "pv_num": 3,
            "uv_num": 1,
            "tt": 364
        },
        {
            "flow": 700,
            "bandwidth": 193,
            "pv_num": 1,
            "uv_num": 1,
            "tt": 29
        }
    ]
}

获取直播访问记录【新】    

获取直播访问记录

API 地址

api.yun.vhall.com/api/v1/room/get-room-join-info

描述

获取直播房间的游客进出记录

入参

参数 类型 是否必选 含义
room_id string 房间ID
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
uid string 第三方用户ID
start_time string 进入时间
end_time string 离开时间
tt int 总观看时长 单位 (秒)
pf string 观看终端 0代表iOSAPP 1代表AndroidAPP 2代表flash 3代表wap 4代表IOSSDK 5代表AndroidSDK 6代表小助手 7代表h5播放器pc端
browser string 请求方式
viewer_province string 地域

错误码

错误码 类型 含义
10020 int 开始时间不能为空
20011 int 房间使用信息查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "uid": "1000204982",
            "start_time": "2018-03-06 11:55:00",
            "end_time": "2018-03-07 11:29:00",
            "tt": 1335,
            "pf": "7",
            "browser": "QQBrowser",
            "viewer_province": "上海"
        },
        {
            "uid": "1000204982",
            "start_time": "2018-03-06 11:57:00",
            "end_time": "2018-03-07 11:29:00",
            "tt": 1268,
            "pf": "7",
            "browser": "Chrome",
            "viewer_province": "加利福尼亚州"
        }
    ]
}

点播API    

生成点播【改1】    

生成点播

API 地址

api.yun.vhall.com/api/v1/record/create

描述

直播房间推流结束后,可通过该接口生成对应的回放视频,生成的点播文件会占用微吼云使用空间

入参

参数 类型 是否必选 含义
room_id string 房间ID
start_time string 回放生成时间 格式 2017/01/01 00:00:00
end_time string 回放结束时间 格式 2017/01/01 00:00:00

出参

参数 类型 是否必选 含义
record_id string 回放ID

错误码

错误码 类型 含义
10013 int 创建点播开始时间不能为空
10014 int 创建点播结束时间不能为空
20002 int 房间查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确
60001 int 录制功能未开启

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "record_id": "6e5692bb"
    }
}
删除点播【改1】    

删除点播

API 地址

api.yun.vhall.com/api/v1/record/delete

描述

和生成点播对应,可删除点播

入参

参数 类型 是否必选 含义
record_id string 点播ID
rate string 删除回放下指定的清晰度文件,多个清晰度,请使用英文逗号分隔 eg : 360p,720p(无该参数为删除该点播下所有文件)

出参

参数 类型 是否必选 含义
delete_record_id int 删除的回放ID

错误码

错误码 类型 含义
10015 int 回放ID不能为空
20006 int '当前回放查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "delete_record_id": "ead7e8e1"
    }
}
点播列表【改1】    

点播列表

API 地址

api.yun.vhall.com/api/v1/record/lists

描述

按当前公共参数传入app_id对应的应用,获取点播列表

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000

出参

参数 类型 是否必选 含义
record_id string 点播ID
app_id string app_id
name string 点播名称
created_at string 创建时间

错误码

错误码 类型 含义
20006 int 当前回放查询为空
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "record_id": "bfd60d4e",
            "app_id": "9320432d",
            "name": "lss_24316d41",
            "created_at": "2017-12-12 16:00:07"
        },
        {
            "record_id": "f7d363e7",
            "app_id": "9320432d",
            "name": "",
            "created_at": "2017-12-13 15:28:39"
        }
    ]
}
配置点播转码【改1】    

配置点播转码

API 地址

api.yun.vhall.com/api/v1/record/set-trans-code-info

描述

用户上传视频后,微吼云不会对上传的视频进行转码,可通过接口配置需要转码的清晰度

  • 转码配置针对应用配置,如果多个应用都需要,需要分别配置

入参

参数 类型 是否必选 含义
rate string 转换清晰度 多个清晰度以英文逗号分开,清晰度见下面列表 eg : 360P,720P

清晰度列表

参数 类型 含义
360P string 分辨率360P 码率330kb
480P string 分辨率480P 码率450kb
720P string 分辨率720P 码率650kb

出参

参数 类型 是否必选 含义
rate string 配置的清晰度

错误码

错误码 类型 含义
10024 int 转码配置不能为空
40010 int 转码类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "rate": "360P,720P"
    }
}
获取点播流量数据【改1】    

按应用获取点播流量数据

API 地址

api.yun.vhall.com/api/v1/record/get-stream-flow

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
flow list 按天获取的流量使用列表 (单位为 KB)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "flow": {
            "2017-12-11": "0",
            "2017-12-12": "20400",
            "2017-12-13": "0",
        }
    }
}
指定回放文件转码【改1】    

指定回放文件转码

API 地址

api.yun.vhall.com/api/v1/record/trans-record

描述

配置点播转码后,并不会对历史上传的视频文件进行转码,如需对历史视频转码,可以调用该接口

入参

参数 类型 是否必选 含义
record_id string 点播ID

出参

参数 类型 是否必选 含义

错误码

错误码 类型 含义
10015 int 回放ID不能为空
20006 int 当前回放查询为空
30010 int 不是当前点播拥有者

响应格式

{
    "code": 200,
    "msg": "",
    "data": []
}
获取点播详情【新】    

获取点播详情

API 地址

api.yun.vhall.com/api/v1/record/get-record-info

入参

参数 类型 是否必选 含义
record_id string 点播ID

出参

参数 类型 是否必选 含义
duration int 时长 单位 (分钟)
storage int 总占用空间 单位 (KB)
created_at string 创建时间
list obj 转码信息

list参数

参数 类型 是否必选 含义
quality string 清晰度
storage int 总占用空间 单位 (KB)
transcode_status string 转码状态 0新增排队中 1转码成功 2转码失败 3转码中

错误码

错误码 类型 含义
10015 int 回放ID不能为空
20006 int 当前回放查询为空
30010 int 不是当前点播拥有者

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "duration": 159,
        "storage": 51561,
        "created_at": "2018-02-26 14:39:28",
        "list": [
            {
                "quality": "720p",
                "storage": 15852,
                "transcode_status": 1
            },
            {
                "quality": "480p",
                "storage": 11677,
                "transcode_status": 1
            },
            {
                "quality": "360p",
                "storage": 9291,
                "transcode_status": 1
            },
            {
                "quality": "a",
                "storage": 2563,
                "transcode_status": 1
            }
        ]
    }
}
获取点播属性信息【新】    

获取点播属性信息

API 地址

api.yun.vhall.com/api/v1/record/get-room-use-info

入参

参数 类型 是否必选 含义
record_id string 点播ID
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
flow int 流量 单位(KB)
pv_num int pv
uv_num int uv
tt int 总观看时长 单位 (秒)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
20011 int 房间使用信息查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "flow": 15015,
            "pv_num": 3,
            "uv_num": 1,
            "tt": 364
        },
        {
            "flow": 700,
            "pv_num": 1,
            "uv_num": 1,
            "tt": 29
        }
    ]
}
获取点播访问记录【新】    

获取点播访问记录

API 地址

api.yun.vhall.com/api/v1/record/get-room-join-info

入参

参数 类型 是否必选 含义
record_id string 点播ID
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
uid string 第三方用户ID
start_time string 进入时间
end_time string 离开时间
tt int 总观看时长 单位 (秒)
pf string 观看终端 0代表iOSAPP 1代表AndroidAPP 2代表flash 3代表wap 4代表IOSSDK 5代表AndroidSDK 6代表小助手 7代表h5播放器pc端
browser string 请求方式
viewer_province string 地域

错误码

错误码 类型 含义
10020 int 开始时间不能为空
20011 int 房间使用信息查询为空
30001 int 不是当前房间拥有者
40004 int 时间类型不正确
40008 int 分页起始提条目不正确
40009 int 分页条目不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "uid": "1000204982",
            "start_time": "2018-03-06 11:55:00",
            "end_time": "2018-03-07 11:29:00",
            "tt": 1335,
            "pf": "7",
            "browser": "QQBrowser",
            "viewer_province": "上海"
        },
        {
            "uid": "1000204982",
            "start_time": "2018-03-06 11:57:00",
            "end_time": "2018-03-07 11:29:00",
            "tt": 1268,
            "pf": "7",
            "browser": "Chrome",
            "viewer_province": "加利福尼亚州"
        }
    ]
}
消息API    
创建频道【改1】    

创建频道

API 地址

api.yun.vhall.com/api/v1/channel/create

入参

参数 类型 是否必选 含义

出参

参数 类型 是否必选 含义
channel_id string 频道ID

错误码

错误码 类型 含义

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "channel_id": "ch_e5fa35b2"
    }
}
删除频道【改1】    

删除频道

API 地址

api.yun.vhall.com/api/v1/channel/delete

入参

参数 类型 是否必选 含义
channel_id string 频道ID

出参

参数 类型 是否必选 含义
delete_channel_id string 删除的频道ID

错误码

参数 类型 含义
10016 int 频道ID不能为空
20004 int 频道查询为空
30002 int 不是当前频道拥有者
40006 int 频道类型不正确
50002 int 系统删除失败

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "delete_channel_id": "ch_e5fa35b2"
    }
}
发送消息【改1】    

发送消息

API 地址

api.yun.vhall.com/api/v1/channel/sent

入参

参数 类型 是否必选 含义
type int 消息类型
body string 消息体
channel_id string 频道ID

type 类型列表

参数 类型 含义
CustomBroadcast string 自定义消息

出参

参数 类型 是否必选 含义

错误码

参数 类型 含义
10010 int 消息类型不能为空
10016 int 频道ID不能为空
20004 int 频道查询为空
30002 int 不是当前频道拥有者
40002 int 消息类型不正确
40012 int 消息体过长,最长为500
50002 int 消息发送失败

响应格式

{
    "code": 200,
    "msg": "",
    "data": []
}
查看消息&过滤数量【改1】    

查看消息&过滤数量(按应用查询)

API 地址

api.yun.vhall.com/api/v1/channel/get-message-num

入参

参数 类型 是否必选 含义
start_time string 查询开始时间 格式 2017/01/01
end_time string 查询结束时间 格式 2017/01/01

出参

参数 类型 是否必选 含义
msg_count int 消息数量
msg_filter_count int 过滤消息数量

错误码

参数 类型 含义
10020 int 开始时间不能为空
40004 int 时间类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "2017-12-12": {
            "msg_count": 2,
            "msg_filter_count": 4
        },
        "2017-12-13": {
            "msg_count": 4,
            "msg_filter_count": 8
        },
        "2017-12-14": {
            "msg_count": 0,
            "msg_filter_count": 0
        }
    }
}
设置第三方用户信息【改1】    

设置第三方用户信息

  • 注意,该接口只作为消息服务,消息内容头像和昵称安全不被串改的一种保障,不作其他使用

API 地址

api.yun.vhall.com/api/v1/channel/save-user-info

入参

参数 类型 是否必选 含义
third_party_user_id string 第三方用户ID
nick_name string 昵称
avatar string 头像(头像网络路径)

出参

参数 类型 是否必选 含义

错误码

错误码 类型 含义

响应格式

{
    "code": 200,
    "msg": "",
    "data": []
}
获取消息列表【新】    

获取消息列表

API 地址

api.yun.vhall.com/api/v1/channel/get-message-list

入参

参数 类型 是否必选 含义
channel_id string 频道ID
type int 查询类型 1 聊天列表 2 自定义聊天列表
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 最大为1000
start_time date 查询开始时间 格式为 2017/01/01
end_time date 查询结束时间 默认为当前时间 格式为 2017/01/01

出参

参数 类型 是否必选 含义
data string 聊天内容
date_time string 聊天时间
third_party_user_id string 第三方用户ID

错误码

错误码 类型 含义
10016 int 频道ID不能为空
20004 int 频道查询为空
20010 int 聊天数据查询为空
30002 int 不是当前频道拥有者
10020 int 开始时间不能为空
40004 int 时间类型不正确

响应格式

  • 返回列表数据按时间格式倒序
{
    "code": 200,
    "msg": "",
    "data": [
        {
            "data": "天天",
            "date_time": "2017-12-22 01:32:25",
            "third_party_user_id": "test1"
        },
        {
            "data": "英语",
            "date_time": "2017-12-22 01:32:09",
            "third_party_user_id": "third_party_user_id"
        }
    ]
}
文档API    
创建文档【改1】    

创建文档

API 地址

api.yun.vhall.com/api/v1/document/create

入参

参数 类型 是否必选 含义
document http multipart/form-data 上传文档文件 (类型请参见 HTTP RFC1867协议)

出参

参数 类型 是否必选 含义
document_id string 文档ID

错误码

错误码 类型 含义
10018 int 文档文件不能为空
50004 int 生成创建文档失败

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "document_id": "6e5692bb"
    }
}
删除文档【改1】    

删除文档

API 地址

api.yun.vhall.com/api/v1/document/delete

入参

参数 类型 是否必选 含义
document_id string 文档ID

出参

参数 类型 是否必选 含义
delete_document_id int 删除的文档ID

错误码

错误码 类型 含义
10017 int 文档ID不能为空
20007 int 文档查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "delete_document_id": "ead7e8e1"
    }
}
文档列表【改1】    

文档列表

API 地址

api.yun.vhall.com/api/v1/document/lists

入参

参数 类型 是否必选 含义
pos int 获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量 默认为 10 条 最大为1000

出参

参数 类型 是否必选 含义
document_id string 文档ID
app_id string app_id
file_name string 文档名称
size int 文档大小 单位为 KB
status int 文档转码转换状态 0待转换 100转换中 200完成 500失败
created_at string 创建时间

错误码

错误码 类型 含义
40008 int 分页起始提条目不正确
40009 int 分页条目不正确
20007 int 文档查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "document_id": "59e67a7e",
            "app_id": "app_id_1",
            "file_name": "员工信息更新表.xlsx",
            "size": 9997,
            "status" : 200,
            "created_at": "2017-12-09 20:07:22"
        }
    ]
}
获取文档信息【改1】    

获取文档信息

API 地址

api.yun.vhall.com/api/v1/document/get-document-info

入参

参数 类型 是否必选 含义
document_id string 文档ID

出参

参数 类型 是否必选 含义
hash string 文档hash
page int 文档含有页码

错误码

错误码 类型 含义
10017 int 文档ID不能为空
20007 int 文档查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "hash": "238ffaea3c6fa0fc08e995f4ae274542",
        "page": 1
    }
}
获取转码成功的文档列表【改1】    

获取转码成功的文档列表

API 地址

api.yun.vhall.com/api/v1/document/get-trans-over-lists

入参

参数 类型 是否必选 含义
pos int 当前获取条目节点 eg : 10 从第10条开始查询
limit int 获取条目数量

出参

参数 类型 是否必选 含义
document_id string 文档ID
app_id string app_id
file_name string 文档名称
size int 文档大小 单位为 KB
created_at string 创建时间

错误码

错误码 类型 含义
40008 int 分页起始提条目不正确
40009 int 分页条目不正确
20007 int 文档查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "document_id": "59e67a7e",
            "app_id": "app_id_1",
            "file_name": "员工信息更新表.xlsx",
            "size": 9997,
            "created_at": "2017-12-09 20:07:22"
        }
    ]
}
获取文档使用数据【新】    

获取文档使用数据

API 地址

api.yun.vhall.com/api/v1/document/get-document-use-info

入参

参数 类型 是否必选 含义
document_id string 文档ID

出参

参数 类型 是否必选 含义
use_time int 使用次数

错误码

错误码 类型 含义
10017 int 文档ID不能为空
20007 int 文档查询为空

响应格式

{
    "code": 200,
    "msg": "",
    "data": {
        "use_time": 6
    }
}
回调管理    
基础说明文档    
回调说明    

回调说明

  • 如需回调服务需要在控制台添加回调接口
  • 添加回调域后,该服务下回调服务会自动往回调接口上推送数据

回调失败判定

  • 当在控制台填写固定回调接口地址后,需要在接口中返回 success 字符串

以PHP为例

exit("success");
  • 当回调接口未返回success字符串时,回调服务会被认定为失败,并重试
  • 当重试次数达到3次时,该回调信息会被记录到数据库中,请使用接口查询
回调格式    

回调格式

  • 通知信息是以 JSON 格式进行组织的,注意这里的 POST 格式的 ContentType 是 application/json。

公共头信息

以下的字段每种类型的回调都一定会携带:

参数名 类型 含义
User-Agent string 回调代理信息
Content-Type string application-json 数据格式
Content-Length int 数据长度
		User-Agent: vhall
		Content-Type: application/json
		Content-Length: content length
回调签名    

回调签名

使用请求参数构造规范化的请求字符串(Canonicalized Query String)

a) 按照参数名称的字典顺序对请求中所有的请求参数(包括文档中描述的“公共请求参数”和给定了的请求接口的自定义参数,但不能包括“公共请求参数”中提到signature参数本身)进行排序。

注:当使用GET方法提交请求时,这些参数就是请求URI中的参数部分(即URI中“?”之后由“&”连接的部分)。

b) 对每个请求参数的名称和值进行编码。名称和值要使用UTF-8字符集进行URL编码,URL编码的编码规则是:

  • 对于字符 A-Z、a-z、0-9以及字符“-”、“_”、“.”、“~”不编码;

c) 对编码后的参数名称、私钥和值使用英文等号(|)进行连接。

d) 再把英文竖线连接得到的字符串按参数名称的字典顺序依次连接,即得到规范化字符串。

使用上一步构造的规范化字符MD5计算,即得到签名的字符串:

签名方法示例

//PHP版本代码
$privateKey = 'abcdefg';    // app secret_key
data = $_POST;
$sign = $data['signature'];
unset($data['signature']);
$sign_new = makeSignature($data , $privateKey);//调用签名生成函数

if($sign == $sign_new){
    echo 'success';
}else{
    echo 'fail';
}

//$privateKey为回调接口私钥
//$data为回传的POST数据数组,剔除掉signature键值
//签名生成函数
function makeSignature(array $data, $privateKey){
    ksort($data);
    $str = '';
    $privateKey = md5($privateKey);
    foreach ($data as $k => $v){
        $str .= $k.'|'.$privateKey.'|'.$v;
    }
    return md5($str);
}
直播服务回调    
点播服务回调    
点播文件生成回调    

点播文件生成回调

事件 event

record/created-success

回调信息

参数 类型 是否必选 含义
event string record/created-success
refer string vhall
time string 回调时间戳
record_id string 回放ID
status int 1 生成成功 2 生成失败
signature string 回调签名

相应示例

{
    event : "record/created-success", // 事件
    refer: "vhall", // 来源
    time: "1505095994", // 当前时间戳
    record_id: "56b345",  // 回放ID
    signature: "7ffa066561d280d0d51f8fdaad29f4a4", // 签名
}
回放转码回调    

转码成功回调

事件 event

record/trans-over

回调信息

参数 类型 是否必选 含义
event string record/trans-over
refer string vhall
time string 回调时间戳
record_id string 回放ID
status int 1 转码成功 2 转码失败
signature string 回调签名

响应示例

{
    event : "record/trans-over", // 事件
    refer: "vhall", // 来源
    time: "1505095994", // 当前时间戳
    record_id: "56b345",  // 回放ID
    signature: "7ffa066561d280d0d51f8fdaad29f4a4", // 签名
}
文档服务回调    
文档转码回调    

文档转码回调

事件 event

document/trans-over

回调信息

参数 类型 是否必选 含义
event string document/trans-over
refer string vhall
time string 回调时间戳
document_id string 文档ID
status int 1 转码成功 2 转码失败
signature string 回调签名

相应示例

{
    event : "record/trans-over", // 事件
    refer: "vhall", // 来源
    time: "1505095994", // 当前时间戳
    document_id: "56b345",  // 文档ID
    signature: "7ffa066561d280d0d51f8fdaad29f4a4", // 签名
}
查询失败回调记录【改1】    

查询失败回调记录

API 地址

api.yun.vhall.com/api/v1/callback/fail-list

入参

参数 类型 是否必选 含义
event int 回调事件
start_time timestamp 查询开始时间 格式为 2017/01/01 00:00:00
end_time timestamp 查询结束时间 默认为当前时间 格式为 2017/01/01 00:00:00

出参

参数 类型 是否必选 含义
list obj 回调数据信息(数据同个回调接口产生的回调数据)

错误码

错误码 类型 含义
10020 int 开始时间不能为空
40004 int 时间类型不正确
40007 int 回调事件类型不正确

响应格式

{
    "code": 200,
    "msg": "",
    "data": [
        {
            "id": 0,
            "record_id": "70545e9f",
            "status": 1
        }
    ]
}
内部 API,封装SDK    
获取点播授权信息 (sdk 封装api)    

获取点播上传授权信息

api名称

record/upload-auth-key

参数

参数 是否必选 含义

出参

参数 类型 是否必选 含义
stsArr object 授权信息

strArr 参数

参数 类型 是否必选 含义
AccessKeySecret string 阿里授权信息
AccessKeyId string 阿里授权信息
Expiration string 阿里授权信息
SecurityToken string 阿里授权信息
oss_bucket string 阿里授权信息

响应格式

	{
	    "code": "200",
	    "msg": "成功",
	    "data": { // 内部为阿里授权信息
	        "stsArr": { 
	            "AccessKeySecret": "56vu2wec5fV6yRwVyFRvhMV4ruD2V5BfkvRjCHfhTrQr",
	            "AccessKeyId": "STS.Db2KL3sgyr6mLv1dQxPNqiAPd",
	            "Expiration": "2017-10-17T03:31:31Z",
	            "SecurityToken": "CAISkgN1q6Ft5B2yfSjIpaGHAPaHnrhYxfSGTlCAgFEtXMFdhoT7hjz2IHlMdHFpBeEWsvo3mWFQ7/4YlqovFcYd/OgnxlEzvPpt6gqET9frPKXXhOV2CfTHdEGXDxnkptCwB8zyUNLafNq0dlnAjVUd6LDmdDKkLWvHUZqSksxIY8hVPGi/diEUINZNOkkA0MgBLin9OPKgLhPNiGjdB1YK3w1nkjFb6L+j+sSG9gG8/Frh0b08rYPrPr25a9VtJJ5lT+qt2Ot/esik1zVLuSBX6IB8jqFP5U3I3LenDkJW/g+NPsfN79RrN3UZXKUhHLNep/WOtp8Ps+fIxYPs0EQPb6MHTSTWQIS+x8ffH/6zPdt8abvgJxaN29uUZJ7uqFFmMzBJKgNDf94/LXNrDgE2QTyfNqK85BfGbwKqTaTCkoNOiMAolQm1ooLVeATXHe/GjRx1YMFsMxkaUDcNxnHkf6M8dAhBTkhqHb79T/8oNUgO8fq07F2OCHU9nykO56fkBfTNoeUCcYH4V55WexaylVrNRwEagAFS8RBmipxBjbsHluhFJqcV9AV/9xlL0cGsYsl5QcrKlxVHlppZQihDSLckZMTlFaOvh9ANACvIS8cxnRpTe8jdf/t5S/xbSDIYtwInDPGHOoEleufHzXj0JAKDP9bTgIRZfDlT+MOEBCBDCnXGwQcyhfzSh3AMulmRHIKxd1yB1g=="
	        },
	        "oss_bucket": "vhallvodsource-test"
	    }
	}

错误码

错误码 类型 含义
创建点播(sdk 封装API)    

获取点播上传授权信息

api名称

record/create-demand

参数

参数 是否必选 含义
source_url 视频上传路径
storage 视频文件大小(单位 : KB)
subject 点播标题 (默认 为 : 点播上传 上传时间)

出参

参数 类型 是否必选 含义
record_id string 回放ID

响应格式

	{
	    "code": "200",
	    "msg": "成功",
	    "data": {
	        "record_id": 3a3b3671 // 回放ID
	    }
	}

错误码

错误码 类型 含义
10027 int 点播上传地址不能为空'