跳到主要内容

QQ Bot 设置

概述

QQ Bot 把 Anyy 连接到 QQ bot 私信和群组。Adapter 支持 DM、groups、lifecycle startup、markdown-capable replies 和 live-smoke 检查。

前提条件

  • 一个 QQ bot app。
  • app_id
  • client_secret
  • 可选 bot_user_id,用于过滤自己消息。
  • Bot 在目标私信或群中的权限。

配置

创建凭据

在平台控制台创建 QQ bot,并把 client secret 保存到 Anyy。

配置 Anyy

anyy setup channels qqbot \
--set app_id=qq-app-id \
--secret client_secret='qq-client-secret' \
--write-config

可选:

channels:
qqbot:
bot_user_id: "bot-user-id"

setup 默认值:

字段默认值
account_idbot
markdown_supporttrue
dm_policyopen
group_policyopen
send_chunk_chars4000

启动 Gateway

anyy gateway start
anyy channels reload

运行 Doctor 检查

anyy channels doctor qqbot

访问策略

私信

setup 默认 dm_policy: open。私有 bot 建议使用 allowlistallow_from

群组

setup 默认 group_policy: open。生产环境建议使用 group_policy: allowlist 配合 allow_groups,或用 mention 要求群里显式唤起。

管理员

QQ Bot channel policy 控制访问。共享 command permissions 控制命令授权。

Sessions

每个被接受的 QQ 私聊或群映射到一个 Anyy session。

媒体支持

入站媒体

当前 QQ Bot adapter 没有声明 inbound media 能力。

出站媒体

QQ Bot 没有声明原生 outbound media。

命令

使用共享 messaging commands。如果设置 group_policy: mention,群里需要 mention bot。

Cron 投递

anyy cron create \
--name "QQ reminder" \
--schedule "30m" \
--prompt "Send the reminder" \
--delivery-target current_user_default \
--delivery-channel qqbot

故障排查

  • Auth 失败:检查 app_idclient_secret_ref
  • Bot 自己回复自己:设置 bot_user_id
  • 太多群可以访问 bot:使用 group_policy: allowlist
  • Markdown 渲染不正确:如果你的 QQ surface 不支持 markdown,设置 markdown_support: false