数据导出

数据导出目前只覆盖消息:admin.messages.export 按应用导出 CSV,默认最近 1000 条、支持 beforeSeq 游标向前翻页。操作日志、告警事件、回调日志没有导出接口,需要按各自的分页接口自行拉取落库。

概念​

项值
CSV 列messageId,conversationType,targetId,senderId,seq,timestamp,type,text
排序先取最新 limit 条,再按 seq 升序输出,便于按时间阅读
limit1–1000,默认 1000
beforeSeq只导出 seq < beforeSeq 的记录,用于向前翻页
字符转义含逗号/引号/换行的字段按 CSV 规则加引号并双写引号
  • 导出包含落盘消息(单聊/群/系统通知/广播);聊天室消息不落盘,不在导出范围。
  • 响应是 JSON 包装的 csv 文本,不是文件流;控制台负责触发下载。
  • 导出不做脱敏;text 为原文(替换策略下是掩码后的正文)。

前置条件​

  • 服务端已启动(默认 http://127.0.0.1:8080),控制台入口 http://127.0.0.1:8080/console/#messages(tab #messages:消息流转)。
  • 请求头 X-Admin-Secret 与服务端 IM_ADMIN_SECRET 一致(本地默认 dev-admin)。
  • 已在控制台选中应用;带 {appkey} 的接口都按应用隔离。
  • 自托管版无购买、计费、套餐、续费与发票流程(不适用项);本页只覆盖配置、查询与治理接口。

步骤​

  1. 确定时间窗口

    先用「消息追踪」确认 seq 范围;无 beforeSeq 时导出最近 1000 条。

  2. 分页导出

    把上一页最小 seq 作为下一页 beforeSeq,直到没有数据。

  3. 保存与校验

    把 data.csv 落盘为 UTF-8;用行数与首尾 seq 校验完整性。

  4. 其它数据另行拉取

    审计/回调/告警用各自列表接口分页拉取,服务端不提供打包导出。

参数表​

参数类型说明
limitint1–1000,默认 1000
beforeSequint64可选;只导出 seq 小于该值的消息

示例​

导出最近 1000 条并保存​

Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/messages/export" \
  -H 'X-Admin-Secret: dev-admin'

# 用 jq 取出 csv 落盘(示例)
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/messages/export?limit=500" \
  -H 'X-Admin-Secret: dev-admin' | jq -r '.data.csv' > messages.csv

用 beforeSeq 翻到更早一页​

Shell
curl -sS -X GET "http://127.0.0.1:8080/api/admin/apps/demo/messages/export?limit=500&beforeSeq=1200" \
  -H 'X-Admin-Secret: dev-admin'

常见问题​

导出会包含聊天室消息吗?​

不会。聊天室消息不落盘,任何导出都拿不到。

能按用户/时间过滤导出吗?​

不能。导出接口只支持 limit 与 beforeSeq;需要条件筛选请用消息检索接口分页拉取。

导出的 text 是明文吗?​

是(敏感词 replace 策略下为掩码正文)。导出文件含用户内容,需按隐私要求存储与访问控制。

为什么只有 1000 条?​

单次上限 1000;用 beforeSeq 循环翻页即可导出全部。

相关链接​