Skip to content

事件详解

Plugin SDK v2 事件同时提供规范字段和完整 rawPayload。规范字段用于常规开发,rawPayload 用于读取 QQ 平台新增或暂未建模的字段。

常见字段:

  • eventId:框架侧事件 ID。
  • eventType:事件类型。
  • bot:机器人账号上下文。
  • conversation:会话类型和目标 ID。
  • sender:发送者 ID、成员 ID、展示名等。
  • message:消息 ID、内容、附件和 mentions。
  • messageReference:用于延迟被动回复的引用。
  • rawPayload:完整 QQBot payload。

群消息

常见 QQBot 事件:GROUP_MESSAGE_CREATE

在 SDK v2 中通常映射为消息事件,conversation.typegroupmessageReference.targetTypegroup。回复时优先使用 messageReference 调用 messages.replyText

C2C / 单聊消息

单聊消息通常映射为 conversation.type = "c2c"。回复仍使用事件中的 messageReference,主动消息需要插件 manifest 声明发送权限,并受平台权限限制。

频道消息

频道消息通常包含 guild 和 channel 上下文。插件需要按实际事件中的 conversation.guildIdconversation.channelIdrawPayload 判断来源。

私信消息

频道私信和 C2C 不是同一类目标。开发时不要只按文本内容判断目标,应该读取 conversation.typemessageReference.targetType

开发建议

  • 常规回复优先使用 messageReference
  • 需要 QQ 平台新增字段时读取 rawPayload
  • 插件收到事件后尽快 ACK,耗时业务放到插件内部异步处理。
  • command 插件用 manifest 中的命令和前缀路由,避免多个插件重复响应同一命令。