Skip to content

搜索消息

1. 接口定位

  • 接口名称: 搜索消息
  • 所属域: msg
  • 业务目标: 按会话对象、发送人、时间与消息类型检索消息记录

2. 请求定义

  • Method: POST
  • Path: /msg/search_msg
  • Content-Type: 推荐 application/json
  • operationID: 必填,请通过 Header operationID 传入
  • 鉴权: 必填,需要通过 Header token 传入有效令牌
  • 幂等性: 幂等(只读操作)

3. 请求参数

Header 参数

字段必填类型说明
operationIDstring链路追踪 ID
tokenstring登录令牌

Body 参数

字段必填类型说明
sendIDstring发送者用户 ID
recvIDstring接收方 ID(单聊对端 userID 或群聊 groupID)
contentTypeint32消息内容类型
sessionTypeint32会话类型(单聊/群聊等)
sendTimestring发送日期,格式 YYYY-MM-DD
paginationobject分页参数

pagination 字段

字段必填类型说明
pageNumberint32页码(从 1 开始)
showNumberint32每页条数

字段约束

  • sendTime 必须是 YYYY-MM-DD,否则返回参数错误。
  • 不传过滤字段时,按分页返回全量检索结果。

4. 响应结构

通用响应包裹

字段类型说明
errCodeint错误码,0 表示成功
errMsgstring错误简述
errDltstring错误详情
dataany业务数据

data 字段结构

字段类型说明
chatLogsarray搜索结果列表
chatLogsNumint32命中总数

chatLogs 元素(SearchChatLog)

字段类型说明
isRevokedbool是否已撤回
chatLogobject消息详情

chatLog 关键字段

字段类型说明
serverMsgIDstring服务端消息 ID
clientMsgIDstring客户端消息 ID
sendIDstring发送者 ID
recvIDstring接收者 ID
groupIDstring群组 ID(群聊时)
senderNicknamestring发送者昵称
recvNicknamestring接收者昵称
contentTypeint32消息类型
contentstring消息内容(字符串化)
seqint64消息序号
sendTimeint64发送时间(毫秒时间戳)
createTimeint64创建时间(毫秒时间戳)

5. 业务规则

  • 群聊结果会附带群名、群主、成员数等聚合信息。
  • 单聊结果会补齐接收方昵称等展示字段。

6. 错误码与失败场景

错误码场景典型报错
1001sendTime 格式非法invalid sendTime
1002无权限访问NoPermissionError
500服务内部错误ServerInternalError

7. 示例

fetch 请求示例

javascript
fetch("http://localhost:10002/msg/search_msg", {
  method: "POST",
  headers: {
    operationID: "f4f4ddf6-728f-4a8f-bd9e-f87c67e33ca5",
    token: "<your-token>",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    recvID: "group_001",
    sessionType: 3,
    sendTime: "2026-04-09",
    pagination: {
      pageNumber: 1,
      showNumber: 20
    }
  }),
})
  .then((res) => res.json())
  .then((data) => console.log(data));

请求示例(JSON)

json
{
  "recvID": "group_001",
  "sessionType": 3,
  "sendTime": "2026-04-09",
  "pagination": {
    "pageNumber": 1,
    "showNumber": 20
  }
}

成功响应示例

json
{
  "errCode": 0,
  "errMsg": "",
  "errDlt": "",
  "data": {
    "chatLogsNum": 1,
    "chatLogs": [
      {
        "isRevoked": false,
        "chatLog": {
          "serverMsgID": "c88f...",
          "clientMsgID": "f95a...",
          "sendID": "u_1001",
          "recvID": "group_001",
          "contentType": 101,
          "content": "{\"text\":\"hello\"}",
          "seq": 1024,
          "sendTime": 1710000000000
        }
      }
    ]
  }
}

8. 时序流程

  1. 解析过滤条件并执行消息库检索。
  2. 补齐用户/群展示信息。
  3. 组装检索结果返回。

9. 变更记录

  • 2026-04-09: 首版补充文档发布。