音视频通话 2.0
服务端
动态与公告
更新日志
活动与公告
【活动】内容安全检测限时补贴活动
关于RTC反垃圾送检计费变更的说明
新手接入指南
产品简介
产品介绍
功能特性
产品优势
应用场景
基本概念
服务端 API 说明
简介
API 概览
调用方式
数据结构
错误码和状态码
Token 鉴权
基础 Token 鉴权
高级 Token 鉴权
房间管理
房间管理概述
创建房间
查询房间信息
查询活跃房间列表
查询房间在线成员信息
查询房间历史成员信息
移除房间成员
撤销移除房间成员
查询房间移除成员列表
设置房间成员封禁状态
删除房间
房间管理事件抄送
安全通
安全通概述
开通安全通服务
创建安全通审核任务
安全通审核自动打码
查询审核视频截图
查询审核音频断句
停止安全通审核任务
安全通最佳实践
实现音视频安全检测
安全通审核事件抄送
云端播放
云端播放概述
云端播放计费说明
创建云端播放任务
更新云端播放任务
查询云端播放任务
暂停云端播放任务
恢复云端播放任务
销毁云端播放任务
云端播放事件抄送
云端录制
云端录制概述
云端录制计费说明
云端录制的实现流程
创建云端录制任务
录制布局
查询云端录制配置
更新订阅名单
停止录制任务
获取录制文件
云端录制事件抄送
旁路推流
旁路推流概述
实现旁路推流
创建旁路推流任务
旁路推流画面布局
更新旁路推流任务
查询指定旁路推流任务
查询所有旁路推流任务
停止旁路推流任务
旁路推流事件抄送
消息抄送
消息抄送服务概述
开通消息抄送服务
房间管理事件抄送
安全通审核事件抄送
云端播放事件抄送
云端录制事件抄送
旁路推流事件抄送
质量数据监控台
质量数据监控
质量数据分析
质量数据分析案例
常见问题处理

请求结构

更新时间: 2023/03/07 14:30:42

发起 API 请求的 URL 由不同参数拼接而成,有固定的请求结构。本产品服务端 API 请求结构主要由三部分组成:

  • URL:指向具体的业务请求,请参见各个 API 接口文档。

  • Header:包括云信 AppKey、CheckSum 等在内的鉴权信息。

  • Body:包括 API 对应的请求参数。若接口没有请求参数,则无需传递 Body。

每篇 API 文档均给出了请求示例供您参考,请在发起请求前自行编码。接口调用成功会显示返回参数,调用失败则显示相应报错,您可以根据错误码分析排查。

Header 中包括用于鉴权的相关公共参数,用于标识用户和接口签名。如非必要,每个单独的接口文档中不再对这些参数进行说明,但每次请求均需要携带这些参数,才能正常发起请求。

参数 说明
AppKey 网易云信控制台中指定应用对应的 AppKey。
Nonce 随机数,最大长度为 128 个字符。
CurTime 当前 Unix 时间戳,即从 1970 年 1 月 1 日 0 点 0 分 0 秒开始到现在的秒数。数据类型为 String。请求 Header 中的 CurTime 字段需要传入正确的 Unix 时间戳。调用服务端接口前,请确认调用方的本地服务器时间正确,否则可能会导致 CurTime 字段传参错误,并收到报错 414。
CheckSum CheckSum 的值为 String 格式,小写。其计算方式为:将 AppSecretNonceCurTime 三个参数拼接的字符串经过 SHA1 哈希计算,并将结果转化成 16 进制字符。即 CheckSum = sha1(AppSecret + Nonce + CurTime)。
出于安全性考虑,每个 CheckSum 的有效期为 CurTime 时间开始之后的 5 分钟内。建议每次请求都生成新的 CheckSum,同时请确认发起请求的服务器与标准时间同步,例如 NTP 服务。

CheckSum 校验

您可以参考以下代码计算 CheckSum,此处以 JAVA 为例。

import java.security.MessageDigest;

public class CheckSumBuilder {
    // 计算并获取CheckSum
    public static String getCheckSum(String appSecret, String nonce, String curTime) {
        return encode("sha1", appSecret + nonce + curTime);
    }

    // 计算并获取md5值
    public static String getMD5(String requestBody) {
        return encode("md5", requestBody);
    }

    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-Typeapplication/json。传入的 Body 必须为 JSON 格式。

服务地址

音视频通话 2.0 API 的服务接入地址为:https://logic-dev.netease.im/v2/api

通信协议

网易云信所有接口均支持通过 HTTPS 协议进行通信,保障更高的安全性。

字符编码

请求及返回结果均使用 UTF-8 字符集编码。

此文档是否对你有帮助?
有帮助
我要吐槽
  • Header
  • CheckSum 校验
  • Body
  • 服务地址
  • 通信协议
  • 字符编码