You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Node.js用axios调用Agora云端录制API提示请求体校验失败如何解决

报错原因

Agora云端录制接口返回code:2代表请求体参数校验不通过,你的代码触发该错误的常见原因如下:

  1. uid参数类型错误:接口要求该字段必须为字符串类型,若你传入的userId是数字类型会直接触发校验失败
  2. cname参数不符合规则:要求长度1~128位,仅支持数字、字母、下划线、中划线,存在中文、特殊符号或长度超限都会报错
  3. clientRequest为空不符合新版本接口要求:部分版本的云端录制接口不允许clientRequest完全为空,需要至少传入资源有效期字段
  4. 参数名拼写错误:接口参数名大小写敏感,比如把cname写成Cname、uid写成Uid都会校验失败

解决步骤

  • 第一步:强制转换uid为字符串类型,修改对应代码
  • 第二步:补充clientRequest必填的基础参数,添加资源有效期配置
  • 第三步:校验cname参数合规性,确认groupId长度在1-128位之间,无特殊字符
  • 第四步:检查所有参数名的拼写,确保和示例完全一致,没有大小写错误
  • 第五步:打印完整请求体日志确认参数,避免传入空值或不符合要求的字段

修改后的参考代码:

const Authorization = `Basic ${Buffer.from(`${config.CUSTOMERID}:${config.CUSTOMER_SECRET}`).toString("base64")}`;
// 构造标准化请求体
const reqBody = {
  cname: groupId,
  // 强制转字符串避免类型错误
  uid: String(userId),
  clientRequest: {
    // 单位为小时,指定录制资源的有效期,最大支持168(7天),填24即可满足常规场景
    resourceExpiredHour: 24
  }
}
// 打印请求体方便排查参数问题
console.log('提交的请求体:', JSON.stringify(reqBody))
const acquire = await axios.post(
  `https://api.agora.io/v1/apps/${config.agoraAppId}/cloud_recording/acquire`,
  reqBody,
  { headers: { Authorization } }
);

内容的提问来源于stack exchange,提问作者MUHAMMAD SHAHID RAFI C P

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 01:15:04