Skip to content

get_group_msg_history

从 QQ 服务器读取指定群聊的历史消息。该接口使用 Android QQ 9.2.70 的 MessageSvc.PbGetGroupMsg,返回的 message_id 可以继续用于 get_msg、撤回、转发和标记已读。

调用示例

js
const result = await api.get_group_msg_history({
  self_id: 1060221,
  group_id: 123456789,
  message_seq: 0,
  count: 20,
  reverseOrder: false,
})

参数

字段类型必填说明
self_idnumber执行请求的 QQ 账号
group_idnumber群号
message_seqnumber分页锚点;传 0 从最新消息开始
countnumber返回数量,默认 20,范围 1-100
reverseOrderboolean是否反转本页消息顺序,默认 false;也兼容 reverse_order

v2.0.6 修复(v2.0.6):message_seq=0 先读取服务器最新群消息序号,不依赖本地缓存,也不发送虚构的最大序号。返回的实际消息保存账号范围内的 message_id,可继续调用 get_msg;服务端已删除且没有发送者、时间的占位记录不作为消息返回。查询历史不会向插件重播消息事件。Android 双节点测试证据与 Linux 验收分开记录。

返回值

json
{
  "messages": [
    {
      "time": 1720000000,
      "self_id": 1060221,
      "post_type": "message",
      "message_type": "group",
      "message_id": 123456,
      "group_id": 123456789,
      "user_id": 106606,
      "message": [{ "type": "text", "data": { "text": "你好" } }],
      "raw_message": "你好"
    }
  ],
  "next_message_seq": 9980,
  "has_more": true
}

继续向前翻页时,把上一次返回的 next_message_seq 传给 message_seq

该接口是只读查询。Android 使用上述 9.2.70 协议;Linux QQ 使用对应的原生历史消息能力,不会转发到同 QQ 的 Android 实例。

调用前必读

协议与使用指南

Android + Linux QQ
适用协议
Android + Linux QQ
使用前准备
目标 Bot 必须属于当前插件节点并处于在线状态;涉及群或好友操作时,账号还必须具备对应 QQ 权限。
选择协议
const targetApi = api.forProtocol('linux') // 或 'android'

原始 action 请求只使用附件约定的 client_type: 'android' | 'linuxqq';省略时选择 Android。

建议搭配

常见失败原因

  • bot 不属于本节点
  • bot 未在线或账号状态不符合要求
  • client_type 无效或目标协议不支持该 action

注意事项

  • 同一 QQ 可同时运行 Android 与 Linux;务必显式选择协议,避免把操作发送到错误会话。
  • 查询结果可能受 QQ 服务端分页、缓存与权限影响,不应假设一次调用返回全部数据。

萌卡NT 开发文档