消息发送
在 KOOK 组件中,主要有两种发送消息的方式。
直接构建并使用 API 发送消息。这是最原始的消息发送方式。
在使用 simbot 核心库时,配合使用 消息元素
Message.Element发送消息。
本章将主要介绍第 1 种方式: 使用 API 发送消息。而与 消息元素 相关的内容可前往参考 消息元素。
使用 API
KOOK API 中用于发送消息的 API 主要就是 向子频道发送消息 和 向用户发送私聊消息。 它们的 API 封装分别为:
这两个 API 的用法非常接近,但仍有两个区别需要先记住:
- SendChannelMessageApi
面向频道消息。 支持
quote、nonce、tempTargetId,并在4.2.0起支持templateId。- SendDirectMessageApi
面向私聊消息。 可通过
targetId或chatCode两条路径构建请求。
下面以 SendChannelMessageApi 为主说明。
仅在API模块使用
当你不依赖其他模块,仅依赖 API 模块 simbot-component-kook-api 时, 你可以使用比较贴合原始的方式直接使用 API。
在标准库中使用
当你依赖使用 标准库模块 simbot-component-kook-stdlib 时, 标准库提供的 Bot 中基本已经包含了请求 API 所需要的基本信息, 因此其会提供一些扩展/辅助方法来简化你的请求逻辑。
在组件库配合simbot4核心库时使用
在 simbot-component-kook-core 中有两种常见做法:
继续使用原始 API:
KookBot.requestData(api)、api.requestDataBy(bot)直接使用对象上的发送能力:
KookChatCapableChannel.send(...)、KookUserChat.send(...)
后者通常更贴近 simbot 的使用方式。
如果你只是需要把 KookBot 当作 stdlib 的 Bot 使用,也可以直接拿到 sourceBot: