服务端
https://doc.yunxin.163.com/jEyODA1OTE/docs/zkzMDA3NTU?platform=server
接口概述
更新时间: 2021/09/07 11:07:34
请求结构
发起 API 请求的 URL 由不同参数拼接而成,有固定的请求结构。本产品服务端 API 请求结构主要由三部分组成:
-
URL:指向具体的业务请求,请参见各个 API 接口文档。
-
Header:包括云信 AppKey、CheckSum 等在内的鉴权信息。
-
Body:包括 API 对应的请求参数。若接口没有请求参数,则无需传递 Body。
每篇 API 文档均给出了请求示例供您参考,请在发起请求前自行编码。接口调用成功会显示返回参数,调用失败则显示相应报错,您可以根据错误码分析排查。
Header
Header 中包括用于鉴权的相关参数,如非必要,每个接口单独的接口文档中不再对这些参数进行说明,但每次请求均需要携带这些参数,才能正常发起请求。
公共请求参数
参数 | 类型 | 说明 |
AppKey | String | 网易云信控制台中指定应用对应的 AppKey。 |
Nonce | String | 随机数,最大长度为 128 个字符。 |
CurTime | String | 当前 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。请求 Header 中的 CurTime 字段需要传入正确的 Unix 时间戳。调用服务端接口前,请确认调用方的本地服务器时间正确,否则可能会导致 CurTime 字段传参错误,并收到报错 414。 |
CheckSum | String | CheckSum 的值为 String 格式,小写。其计算方式为:将 AppSecret、Nonce 和 CurTime 三个参数拼接的字符串经过 SHA1 哈希计算,并将结果转化成 16 进制字符。即 CheckSum = sha1(AppSecret + Nonce + CurTime)。 出于安全性考虑,每个 CheckSum 的有效期为 CurTime 时间开始之后的 5 分钟内。建议每次请求都生成新的 CheckSum,同时请确认发起请求的服务器与标准时间同步,例如 NTP 服务。 |
接口鉴权
接口通过请求头中的公共参数进行鉴权。
本文档中提供的所有接口均面向开发者服务器端调用,开发者应妥善保管用于计算 CheckSum 的 AppSecret,可在应用的服务器端存储和使用,但不应存储或传递到客户端,也不应在网页等前端代码中嵌入。
计算 CheckSum 的 JAVA 代码示例如下:
import java.security.MessageDigest;
public class CheckSumBuilder {
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();
}
private static final char[] HEX_DIGITS = { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f' };
}
Body
服务端 API 请求的 Content-Type 为 application/json。传入的 Body 必须为 JSON 格式。
服务地址
网易云信直播服务使用的域名访问地址为:vcloud.163.com
。
通信协议
网易云信直播服务的所有接口均通过 HTTPS 进行通信,提供高安全性的通信通道。
请求方法
所有接口都只支持 POST 请求。
字符编码
所有接口均使用 UTF-8 编码。
返回结构
所有接口返回类型为 JSON。返回字段如下:
参数 | 类型 | 说明 |
---|---|---|
code | int | 返回结果的状态码。 |
ret | String | 业务相关返回结果。 |
msg | String | 当返回的状态码为 200 以外的其他值时,对应的错误信息。 |
requestId | String | 用户唯一请求标识字符串。 |