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语言的代码示例
  1. String appkey="7897e2bb863041b6a2656fd087034807";
  2. String secret="c139a4cacb1d0ddc9d00e4ece5a6d0041b12a129";
  3. String nonce="12";
  4. String timestamp=String.valueOf(Calendar.getInstance().getTimeInMillis()/1000);
  5. String sign = DigestUtils.sha256Hex(appkey + secret + nonce + timestamp);
HTTP 请求示例
  1. GET https://api-zhibo.yxt.com/v1/zhibo/rooms/62b2f59a-fb6c-4603-8fd4-edddd8cf4a47/prdline
  2. appkey: 7897e2bb863041b6a2656fd087034807
  3. nonce: 14314
  4. timestamp: 1408706337
  5. signature: 45beb7cc7307889a8e711219a47b7cf6a5b000e8
  6. Content-Type: application/json;charset=UTF-8