当前公开契约 · 消息

企业微信发送语音 API

发送语音。没有专门的语音上传接口:先调「上传文件」,把返回的 data 整体作为 content,再补一个 voiceTime(秒)。

进入控制台试用 查看完整契约
POST实例字段:ql_appid更新:2026-09-04

请求地址

POST https://api.qingluanbot.com/qingluan/api/message/sendVoice

请求示例

curl -X POST 'https://api.qingluanbot.com/qingluan/api/message/sendVoice' \
  -H 'X-Qingluan-Key: YOUR_API_KEY' \
  -H 'Content-Type: application/json' \
  -d '{
  "ql_appid": "inst_xxxxxxxxxxxx",
  "content": {
    "aesKey": "<上传接口返回的 aesKey>",
    "id": "<上传接口返回的 fileId>",
    "md5": "<上传接口返回的 md5>",
    "name": "v.amr",
    "size": 206,
    "url": "",
    "voiceTime": 3
  },
  "conversationId": 10000000000000006
}'

请求参数

字段类型要求说明
ql_appidstring必填青鸾实例 ID,形如 inst_xxxx。在开发者控制台「实例与回调」扫码上号后获得。
conversationIdinteger必填会话 ID。群聊传群号,私聊传对方 uin。注意它超出 JavaScript 安全整数范围,JS 侧需按大整数处理,不要经过 Number()。
contentobject必填「上传文件」返回的 data 整体,再加一个 voiceTime(秒)。

响应判断

能力层接口返回包含 code、message、time 与 data 等字段;请以 code=0 判断业务成功。HTTP 200 只表示网关已返回响应,不能替代业务状态判断。

可能的响应状态

HTTP 状态公开契约说明
200原样返回(code = 0 即成功)
403受控接口,需通过控制台配置
404ql_appid 不存在或无权访问

200 响应示例

{
  "code": 0,
  "data": {
    "content": {
      "aesKey": "<上传接口返回的 aesKey>",
      "id": "<上传接口返回的 fileId>",
      "md5": "<上传接口返回的 md5>",
      "name": "v.amr",
      "size": 206,
      "url": "",
      "voiceTime": 3
    },
    "contentType": 16,
    "flag": 83886080,
    "fromUserId": 1000000000000001,
    "id": 1001343,
    "messageType": 1,
    "roomId": "10000000000000006",
    "sendTime": 1788424051,
    "senderName": "小艺",
    "syncKey": 44527065,
    "toUserId": 0
  }
}

接入步骤

  1. 在青鸾开发者控制台创建或查看 API Key。
  2. 在「实例与回调」接入企业微信账号,取得 ql_appid
  3. 请求头携带 X-Qingluan-Key,按当前契约提交 JSON 请求。
  4. 读取响应中的 code;仅当 code=0 时按成功流程处理。

把企业微信能力接入你的系统

从 API Key、ql_appid 到首个 code=0 响应,可在开发者控制台完成配置与验证。

打开开发者控制台