虎牙开放平台

API接入基础文档

文档介绍

提供接入虎牙直播API的基础数据文档

每个接口包含的请求参数

参数名称 类型 是否必需 描述
appId string openId,由虎牙分配
sign string 签名,详见“签名机制”
timestamp int 秒级时间戳
data string 接口参数,按键名升序的json格式,包括具体接口的所有请求参数,详见各接口参数说明

返回结构

参数名称 类型 是否必需 描述
statusCode int 状态码,详见状态码说明
statusMsg string 返回说明,失败时有失败说明
data object 返回结果,详见各接口返回说明

状态码说明

状态码 描述
200 成功
401 未登陆
407 签名未通过
422 参数验证不通过
503 服务器错误
其他 待定

签名机制

采用MD5加密,待加密的java语言字符串为 "data=" + data + "&key=" + key + "&timestamp=" + timestamp,获取字节使用“UTF-8”编码;data结构为json字符串形式的接口参数。key为虎牙平台分配的secretId。若data参数为空,则对java语言字符串 "data=" + "\"\"" + "&key=" + key + "&timestamp=" + timestamp 字符串进行MD5加密。

代码示例

PHP

//若 data={"roomId":xxxx},key=123acbde
$data = '{"roomId":xxxx}';
$time = time();
if($data){
    $str = $data;
}else{
    $str = '""';
}
$sign = md5("data={$str}&key=123acbde&timestamp={$time}");

JAVA

//若 data={"roomId":xxxx},key=123acbde
String jsonStr = "\"\"";
String key = "123acbde";
int timestamp = getSecondTimestamp();//获取秒级时间戳
Map<String, Object> paramMap = new TreeMap<String, Object>();
paramMap.put("roomId", xxxx);//data={"roomId":xxxx}
Gson gson = new Gson();
if(!paramMap.isEmpty()){
    jsonStr = gson.toJson(paramMap);
}
String sign = getMD5("data=" + jsonStr + "&key=" + key + "&timestamp=" + timestamp); //生成小写的md5