Skip to content

消息 API

消息 API 使用类型化参数结构体。每个发送场景对应一个参数类型和一个发送方法:

场景参数类型发送方法
频道MessageParamssend_message
GroupMessageParamssend_group_message
C2CC2CMessageParamssend_c2c_message
私信DirectMessageParamssend_direct_message

所有参数结构体都提供 new_text(content)new_markdown(content)new_ark(...)new_embed(...)new_keyboard(...)with_reply(message_id)。群和 C2C 参数还提供 new_media(...)

rust
let params = MessageParams::new_text("你好").with_reply(&message_id);
api.send_message("channel_id", params).await?;

富消息载荷

常见富消息使用构造器:

rust
let params = MessageParams::new_embed(my_embed);
api.send_message(channel_id, params).await?;

自定义组合先从最接近的构造器开始,再直接设置额外字段,并用 ..Default::default() 让无关协议字段不进入发出的 JSON。

选择正确的参数类型

根据事件 payload 选择 ID 和参数类型:

  • Messagechannel_id;使用 MessageParams
  • GroupMessagegroup_openid;使用 GroupMessageParams
  • C2CMessageauthor.user_openid;使用 C2CMessageParams
  • DirectMessagecreate_direct_message 返回的私信会话;使用 DirectMessageParams 和会话 guild_id

事件处理器里优先使用 session helper:replysend_markdown_messagesend_embed_messagesend_ark_messagesend_keyboard_message,以及群/C2C 的 send_media_message。独立调用 BotApi 时,构造对应 params 并调用相应发送方法。

基于 MIT 许可证发布