Skip to content

出站推送 ​

项说明
方向平台 → 你
方法POST
URL开通时配置的 HTTPS 接收地址
Content-Typeapplication/json
鉴权无 Token。能用 secret 解密即合法

产物就绪后平台 POST 一条密文。你方解密 → 按 eventId 去重 → 返回 {"code":2000}。

密文外壳见 安全规范。

明文信封 ​

解密后的 JSON。业务字段全部在 data 内。

参数名类型必传描述
specVersionstring是固定 "1"
eventIdstring是去重键。自动补推仍用此值;人工重推会换新 eventId
eventTypestring是见 概述 · 对接方案
occurredAtstring是ISO-8601,时区 +08:00
audioIdstring是录音 ID
dataobject是下表。未订阅的类型不会出现对应字段

data · 公共字段 ​

参数名类型必传描述
deviceUidstring否设备 UID
titlestring否录音标题
contentTypesstring[]多项时实际包含的类型,如 ["DENOISE_COMPLETED","TRANSCRIPT_COMPLETED"]
参数名类型必传描述
deviceUidstring否设备 UID
titlestring否录音标题
contentTypesstring[]多项时实际包含的类型,如 ["DENOISE_COMPLETED"]

data · 处理后音频(含 DENOISE_COMPLETED) ​

参数名类型必传描述
denoiseUrlstring是处理后音频文件 URL
recordDurationint否时长,秒

data · 转写文本(含 TRANSCRIPT_COMPLETED) ​

参数名类型必传描述
transcriptIdlong是转写记录 ID
transcriptTextstring是全文
transcriptSentencesstring是分句。JSON 数组的字符串,需再反序列化,类型不是 array
durationMslong否转写时长,毫秒
wordsCountint否句段条数

transcriptSentences 反序列化后的元素:

参数名类型必传描述
textstring是一句文本
beginTimelong否开始,毫秒
endTimelong否结束,毫秒
emotionstring否如 neutral
speakerIdint否说话人编号

示例(仅转写) ​

json
{
  "specVersion": "1",
  "eventId": "c0ffee12ab",
  "eventType": "TRANSCRIPT_COMPLETED",
  "occurredAt": "2026-08-26T10:00:00+08:00",
  "audioId": "audio-xxx",
  "data": {
    "deviceUid": "DEV001",
    "title": "客户拜访",
    "transcriptId": 90001,
    "transcriptText": "你好,今天过来看看。",
    "transcriptSentences": "[{\"text\":\"你好,今天过来看看。\",\"beginTime\":0,\"endTime\":1800,\"emotion\":\"neutral\",\"speakerId\":0}]",
    "durationMs": 1800,
    "wordsCount": 1
  }
}

示例(处理后音频 + 转写) ​

只订一项时:无 contentTypes,也没有未订类型的字段。

json
{
  "specVersion": "1",
  "eventId": "c0ffee12ab",
  "eventType": "DENOISE_COMPLETED,TRANSCRIPT_COMPLETED",
  "occurredAt": "2026-08-26T10:00:00+08:00",
  "audioId": "audio-xxx",
  "data": {
    "deviceUid": "DEV001",
    "title": "客户拜访",
    "contentTypes": ["DENOISE_COMPLETED", "TRANSCRIPT_COMPLETED"],
    "denoiseUrl": "https://oss.example/audio.wav",
    "recordDuration": 35,
    "transcriptId": 90001,
    "transcriptText": "你好,今天过来看看。",
    "transcriptSentences": "[{\"text\":\"你好,今天过来看看。\",\"beginTime\":0,\"endTime\":1800,\"emotion\":\"neutral\"}]",
    "durationMs": 1800,
    "wordsCount": 1
  }
}

示例(处理后音频) ​

json
{
  "specVersion": "1",
  "eventId": "c0ffee12ab",
  "eventType": "DENOISE_COMPLETED",
  "occurredAt": "2026-08-26T10:00:00+08:00",
  "audioId": "audio-xxx",
  "data": {
    "deviceUid": "DEV001",
    "title": "客户拜访",
    "denoiseUrl": "https://oss.example/audio.wav",
    "recordDuration": 35
  }
}

响应 ​

你的 HTTP 响应 Body:

json
{ "code": 2000 }
参数名类型必传描述
codeint是2000 表示已收到。平台 只读该字段
msgstring否忽略
dataobject否忽略

成功条件:HTTP 2xx 且 code == 2000。仅 HTTP 200 不算成功。

补推与幂等 ​

你的响应平台行为
2xx 且 code == 2000成功,不再补本条
2xx 但非 JSON / 无 code / code ≠ 2000失败,不自动补推
4xx失败,不自动补推
5xx、超时、连接失败自动补推,最多 4 次(约 15s / 60s / 5min)
场景建议返回
密钥错误、密文无法解密4xx 或 code ≠ 2000(避免无效重试)
处理过程异常、希望平台再送5xx
同一 eventId 再次到达仍返回 code: 2000,不要重复落库

自动补推(超时 / 5xx)仍用同一 eventId,nonce 重新生成。人工在平台点重推会换新 eventId,按新事件处理。

注意事项 ​

  1. 订阅多项只来一条推送,eventType 为所订类型名逗号拼接。
  2. 耗时逻辑先回 2000 再异步,避免超时补推。
  3. secret 只下发一次;轮换后旧钥立即失效。