Skip to content

调用 QQ 开放接口

下面这些示例展示了 BotApi 在消息收发之外的常见用法。每个示例都是自包含的 event handler,通过聊天命令触发 API 调用。

示例涉及 API
guild/api_permission.rsBotApi::get_api_permissionsBotApi::post_permission_demandAPIPermissionDemandIdentify
guild/announce.rsBotApi::create_announceBotApi::delete_announceBotApi::create_recommend_announceRecommendChannelAnnouncesType
guild/schedule.rsBotApi::create_scheduleget_scheduleupdate_scheduledelete_scheduleRemindType
guild/pins_message.rsBotApi::get_pinsBotApi::put_pinBotApi::delete_pin
guild/reaction_users.rsBotApi::get_reaction_usersEmojiType::System,按 cookie 字段翻页
guild/recall.rssession.recall_message(也可走 BotApi::recall_message
api/message_params.rsMessageParamsGroupMessageParamsC2CMessageParamsDirectMessageParams

套路

所有 REST 调用都可以直接写在 session 上,因为 session 会解引用到 BotApi;token 存在 BotApi 内部。错误以 botrs::BotError 返回,框架不会自动重试,请就地处理。

rust
// examples/guild/recall.rs —— 发完立即撤回
let resp = session.reply("this will vanish").await?;
if let Some(message_id) = resp.id {
    session
        .recall_message(session.channel_id(), &message_id, /* hidetip */ true)
        .await?;
}

对于 get_reaction_users 这类分页 API,按示例里的写法用返回的 cookieis_end 自行驱动循环。

参见

  • 指南:docs/zh/guide/api-client.md
  • 可用方法的权威来源:src/api/mod.rs 以及 src/api/ 目录下的实现文件
  • 上面表格里列出的 examples/ 示例路径

基于 MIT 许可证发布