API 认证机制
AK(Access Key ID)/SK(Secret Access Key),主要用于对接入方用户的调用行为进行鉴权和认证,相当于云学堂直播云API专用的用户名及密码。
注:接入方的AK/SK请配置在服务端应用中,并在服务端使用,请勿在移动端应用中配置或使用。
通用 API 接口签名规则
每次请求 API 接口时,均需要提供 4 个 HTTP Request Header,具体如下:
名称 | 类型 | 描述 |
---|---|---|
appkey | String | 开发者平台分配的App Key,即Access Key |
nonce | String | 随机数,最长32位。 |
timestamp | String | 时间戳,从1970年1月1日0点0分0秒开始到现在的秒数。与标准时间上下偏差不超过5分钟。 |
signature | String | 数据签名 |
signature(数据签名)计算方法:将系统分配的App Key、App Secret(Secret Access Key)、nonce (随机数)、timestamp (时间戳)四个字符串按先后顺序拼接成一个字符串并进行SHA-256哈希计算。如果调用的数据签名验证失败,接口调用会返回 HTTP 状态码 400。
伪代码:SHA256(appkey+ secretKey + nonce + timestamp)
Java语言的代码示例
String appkey="7897e2bb863041b6a2656fd087034807";
String secret="c139a4cacb1d0ddc9d00e4ece5a6d0041b12a129";
String nonce="12";
String timestamp=String.valueOf(Calendar.getInstance().getTimeInMillis()/1000);
String sign = DigestUtils.sha256Hex(appkey + secret + nonce + timestamp);
HTTP 请求示例
GET https://api-zhibo.yxt.com/v1/zhibo/rooms/62b2f59a-fb6c-4603-8fd4-edddd8cf4a47/prdline
appkey: 7897e2bb863041b6a2656fd087034807
nonce: 14314
timestamp: 1408706337
signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
Content-Type: application/json;charset=UTF-8