Lonely 自己私下里有一个公益站(怕扛不住所以没公开),但是呢… 对于用户(在 qq 群内)留存率有点苦恼,所以想出来了通过 Nonebot2 QQ Adapter 在 QQ 群内认证并遵循 OAuth2.0 标准

先掏源码:
archive.zip

NewAPI 中的配置:

配置

Well-Known URL
<不用填这个 这个目前不支持>
Client ID:
<QQ群ID,Bot只会受理指定群的消息>
Client Secret:
<你oauth_secrets.json中的密钥>
Authorization Endpoint:
https://<domain>/oauth/authorize
Token Endpoint:
https://<domain>/oauth/token
User Info Endpoint:
https://<domain>/oauth/userinfo

使用教程:

  1. 解压
  2. 使用 uv sync 命令同步环境,没有 uv 的请看 uv 官方文档 安装
  3. 配置.env.prod,记得随机生成一个 JWT_SECRET,这个绝对不能给别人!!给了别人就能解码 JWT 了,注意在文件中添加一行 ONEBOT_ACCESS_TOKEN=你的访问令牌,生产环境需要添加
  4. 打开 data 目录,复制文件 oauth_secrets.json.example 为 oauth_secrets.json,并编辑键值对,键是群号,值(列表)是(多个)OAuth 密钥,可以只配置一个
  5. 接下来回到项目根目录,通过 uv run bot.py 运行项目,记得反代为 HTTPS 协议,不然凭据容易被(中间人)盗取
如何接入 QQ 机器人

在服务器安装 Napcat
使用 docker logs <容器名字,默认napcat> 查看容器日志,打开服务器地址:6099/webui,从日志中找到 token 并登录 Napcat 以及登录 Napcat 上的 QQ
接下来添加连接配置,选择客户端 Websocket,地址填写 ws://<服务器地址>:5800/onebot/v11/ws(因为 NGINX 反代不好用,所以连接),密钥填写你在第三步 配置的连接 Token,不是 secret
接下来确保 Napcat 和 Nonebot 启动后,打开你要应用的 QQ 群,发送登录 123456 测试机器人是否有反应,有反应则代表成功


📌 转载信息
转载时间:
2026/1/5 13:00:59

标签: QQ Bot, newapi, NoneBot2, OIDC, OAuth2.0

添加新评论