服务端API文档

接口概述

一、服务地址

全时云直播域名:events-openapi.quanshi.com

 

二、通信协议

所有接口均通过HTTPS进行通信,提供高安全性的通信通道。

 

三、请求方法

所有接口都只支持POST请求。

 

四、字符编码

所有接口均使用UTF-8编码

 

五、公共参数

所有接口均需要放置以下公共参数在请求头中,用于标识用户和接口鉴权

参数 类型 必须 说明
AppKey String 开发者平台分配的appKey
Nonce String 随机数(随机数,最大长度128个字符)
CurTime String 当前UTC时间戳,从1970年1月1日0点0分0秒开始到现在的毫秒数
CheckSum String 服务器认证需要,16进制字符小写SHA1(AppSecret+Nonce+CurTime)

 

六、接口鉴权

重要提示: 本文档中提供的所有接口均面向服务器端调用,用于计算的AppSecret开发者应妥善保管

计算checkSum的java代码举例如下:

import java.security.MessageDigest; 

public class CheckSumBuilder {
    private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' }; 

    public static String getCheckSum(String appSecret, String nonce, String curTime){ 
        return encode("sha1", appSecret + nonce + curTime); 
    } 

    private static String encode(String algorithm, String value){ 
        if (value == null) { 
            return null; 
        } 
        try { 
            MessageDigest messageDigest = MessageDigest.getInstance(algorithm);
            messageDigest.update(value.getBytes()); 
            return getFormattedText(messageDigest.digest()); 
        } catch (Exception e) { 
            throw new RuntimeException(e); 
        } 
    } 

    private static String getFormattedText(byte[] bytes){ 
        int len = bytes.length; 
        StringBuilder buf = new StringBuilder(len * 2); 
        for (int j = 0; j < len; j++) { 
            buf.append(HEX_DIGITS[(bytes[j] >>4) &0x0f]); 
            buf.append(HEX_DIGITS[bytes[j] &0x0f]); 
        } 
        return buf.toString(); 
    } 
}

 

七、返回说明

所有接口返回类型为JSON。返回结构如下:

参数 类型 说明
timeStamp Long 返回时间(时间戳,单位毫秒)
requestId String 请求ID(在接口异常时, 需提供请求ID)
code Int 返回的状态码
msg String 当返回结果的状态码不为200时,包含的错误信息
data Json 返回值