运行原理

Nonebot 的运作原理其实很简单,机器人功能由 Nonebot 运作,它提供接入自定义插件的平台,那么 cqhttp 则扮演了一个 Nonebot 与 QQ 交流的桥梁,负责将消息从QQ取回传递给 Nonebot,Nonebot 处理将反馈交还给 cqhttp,cqhttp 传递至QQ实现功能。

其实这里的无头客户端还有很多其它的工具,这里介绍的是 cqhttp(个人喜欢 golang,特点是轻量到处能跑)

要求环境

Debian / Ubuntu Python >= 3.7

配置 go-cqhttp

# 下载 latest release go-cqhttp
wget -c "https://github.com/Mrs4s/go-cqhttp/releases/download/latest/go-cqhttp_linux_amd64.tar.gz"
tar -xzvf go-cqhttp_linux_amd64.tar.gz -C go_cqhttp; rm go-cqhttp_linux_amd64.tar.gz; cd go_cqhttp

# 运行 go_cqhttp,令其生成默认配置文件
./go_cqhttp
# 这里只配置了 WebSocket 正向和 WebSocket 反向
config.yml

反向 WebSocket 连接

account:
  uin: 机器人QQ号
  password: "机器人密码"

message:
  post-format: array

servers:
  - ws-reverse:
      universal: ws://127.0.0.1:8080/cqhttp/ws

反向 WebSocket 连接

account:
  uin: 机器人QQ号
  password: "机器人密码"

message:
  post-format: array

servers:
  - ws:
    host: 127.0.0.1
    port: 6700

配置完成,快速启动 go-cqhttp

# 跳过启动前5秒
./go-cqhttp faststart

配置 Nonebot

cd ~

# 通过脚手架安装, nonebot2 会被作为依赖安装
pip install nb-cli

# 创建一个空项目
nb create

# 新建项目 bot,选择 cqhttp 作为适配器。完成后会在当前目录生成一个 /bot 项目目录

cd /bot

# 编辑 `bot.py`,末尾添加一行 
CQHTTP_WS_URLS={"修改为机器人QQ号": "ws://127.0.0.1:6700/"}

# 运行 bot
nb run
/echo Hello world!

简述 Nonebot 插件安装

nb plugin listnb plugin install 插件
requirement.txtpip install i-r requirement.txt