介绍
BotRS 是一个用 Rust 构建 QQ 机器人的异步框架。它将 QQ 网关事件与机器人 OpenAPI 封装为少量类型:Client、EventHandler、session 类型、BotApi、Token 和 Intents。使用本框架时,几乎所有工作都从这些类型出发。
架构概览
Client 拥有网关连接和 HTTP 客户端。构造它需要 Token、Intents 位集、EventHandler 实现,以及一个布尔值用来选择沙箱或正式环境基础地址。调用 client.start().await 之后,网关会把事件分派到你的处理器。
EventHandler 是一个 trait,每个事件对应一个带默认实现的 async fn(例如 message_create、direct_message_create、guild_create、forum_thread_create 等)。只实现关心的事件即可。
每次回调都会传入一个 session 对象。Reply session 提供顺手的 reply、send_*_message 和底层 send_message 方法;event session 通过 session.event() 暴露类型化载荷。BotApi 是带类型签名的 HTTP 层,并持有 REST 调用所需的 token;如果需要在事件处理之外调用 REST API,也可以自行构造一个。
Intents 是一个位标志集合,告诉网关需要投递哪些事件类别,按需订阅可以减少无用流量。
消息发送
Reply session 直接覆盖常见发送场景:
session.reply("你好").await?;
session.send_markdown_message("# hello").await?;独立调用 BotApi 或需要自定义字段时,使用 MessageParams::new_text、GroupMessageParams::new_media、C2CMessageParams::new_embed、DirectMessageParams::new_markdown 等类型化 params 构造器。