使用 GO-CQHttp或mirai框架 搭建QQ的机器人
我的博客
Go-CQHttp搭建QQ机器人
官方文档在这——>ATRU官方文档
Go-CQHttp + Atri
使用Linux系统部署
需求
服务器一台/带有Linux的机器
Python环境版本>=3.8
SSH终端工具,推荐Xshell
配置Go-CQHttp
前往go-cqhttp release下载cqhttp对应的linux服务端
go-cqhttp_linux_amd64.tar.gz文件使用ssh工具进入服务器,新建cqhttp文件夹
cd ~
mkdir cqhttp && cd cqhttp
将
go-cqhttp_linux_amd64.tar.gz上传到cqhttp文件夹,并且解压这个包运行
./go-cqhttp,等待出现以下:

此时,按下ctrl+c结束进程,然后修改config.yml
注释里有 // 的需要自己自定义。其他的我也弄不懂,所以建议不要动。
# go-cqhttp 默认配置文件
account: # 账号相关
uin: 1437907718 # QQ账号
password: '' # 密码为空时使用扫码登录
encrypt: false # 是否开启密码加密
status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态
relogin: # 重连设置
delay: 3 # 首次重连延迟, 单位秒
interval: 3 # 重连间隔
max-times: 0 # 最大重连次数, 0为无限制
# 连接服务列表
servers:
# 添加方式,同一连接方式可添加多个,具体配置说明请查看文档
#- http: # http 通信
#- ws: # 正向 Websocket
#- ws-reverse: # 反向 Websocket
#- pprof: #性能分析服务器
# 反向WS设置
- ws-reverse:
# 反向WS Universal 地址
# 注意 设置了此项地址后下面两项将会被忽略
universal: ws://127.0.0.1:8080/onebot/v11/ws // 反向 websockets 通信地址,按照我写的就行。
# 反向WS API 地址
api: ws://your_websocket_api.server
# 反向WS Event 地址
event: ws://your_websocket_event.server
# 重连间隔 单位毫秒
reconnect-interval: 3000
middlewares:
<<: *default # 引用默认中间件
_config.yml设置好之后,继续运行./go-cqhttp:

接下来会出现一个二维码,拿你的机器人qq扫码授权即可。第一次扫码就行,之后无需扫码,除非你动了文件。 虽然会出现黄色字段,但是不用管,等最后设置好nonebot后,就可以连通了:
按下ctrl+c结束进程,并输入 cd ~返回home文件夹。到这,你的cqhttp就配置成功了!
配置atri
传送门:atri 高性能文爱萝卜子,糅杂了各类有趣小功能。
从Github库下载好ATRI-main.zip压缩包
放进你的服务器目录中,然后通过unzip ATRI-main.zip命令解压此压缩包,
我建议把
ATRI-main文件夹名称改为main,以方便后期的调试,
再通过cd main进入文件夹,并输入以下命令安装atri所需的依赖:
pip install -r requirements.txt
安装完依赖之后,再修改下文件夹中的config.yml文件,这里我们只做最初的改动:
记得将
InlineGoCQHTTP的enable改为false。我们暂时采用GO-CQHttp、atri分开运行的方式。
BotSelfConfig:
host: "127.0.0.1" # 监听ip,要和cq-http中的设置保持一致。
port: 20000 # 监听端口,要和cq-http中的设置保持一致。
debug: false
superusers: ["1234567890"] # 超级用户qq号码。注意:这不是机器人qq号,这是一个和机器人沟通的账号。
nickname: ["ATRI", "Atri", "atri", "亚托莉", "アトリ"]
command_start: ["", "/"]
command_sep: ["."]
session_expire_timeout: 60
proxy: "" # 请参考文档
InlineGoCQHTTP: # 在atri文件夹内调用cqhttp,这边建议cq-http和atri分开跑比较好呢!
enabled: false
accounts: # 可多个账号,具体请参考文档
- uin: 1234567890
password: ""
protocol: 3
download_domain: "github.com"
download_version: "v1.0.0-rc1"
SauceNAO:
key: ""
Setu:
reverse_proxy: true # 请参考文档
reverse_proxy_domain: "i.pixiv.re"
修改好之后,就可以通过以下命令来启动atri啦!
COPYpython main.py
screen让你的机器人跑起来
安装screen模块:
通过如下命令安装screen:
yum install -y screen
screen简单命令
创建一个screen
例如:screen -S [name]:
screen -S cqhttp
这样,你就创建好了一个screen,现在按住ctrl a+d来退出,如果你还想查看的话,也可以通过screen -r cqhttp来查看。
查看当前运行中的screen
例如:screen -ls
ubuntu@VM-16-11-ubuntu:~$ screen -ls
There are screens on:
2183677.cqhttp (03/04/2022 09:55:58 PM) (Detached)
2182766.atri (03/04/2022 09:52:23 PM) (Detached)
2 Sockets in /run/screen/S-ubuntu.
注意上述命令中的数字2183677.cqhttp,它非常有用,我们可以通过screen -r 2183677的方式来重新加入,也可以通过screen -r cqhttp来进入screen。
销毁一个screen
例如:screen -X -S [name] quit。按上文所述,我们查到cqhttp的数字为2183677,那么我们就可以通过如下方式来杀死这个screen:
screen -X -S 2183677 quit
将atri和cqhttp连通
大体思路:在cqhttp的文件夹内创建一个screen用来运行cqhttp,然后退出当前screen,cd到atri文件夹,仍按照上述步骤操作,这样,cqhttp才能和atri连通。
cd cqhttp
screen -S cqhttp
此时,我们已经开启了cqhttp的screen窗口,这时,我们就可以先通过./go-cqhttp faststart让cqhttp运行起来,然后通过ctrl a+d退出当前screen。再然后,进入到atri文件夹内。
cd ~
cd atri
screen -S atri
同样的,atri窗口已经开启,通过python main.py让atri运行,然后ctrl a+d退出。 此时,我们再screen -r cqhttp返回cq的screen,发现已经连接上atri辣! 我们对机器人发一个/ping,机器人便会回复,

注:此段大部分参照Sady's Blog,欢迎去串门
基于mirai框架搭建QQ机器人
mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库。
开始
环境
Windows或Windows Sever都可以
QQ小号
流程
下载适合你的系统的可执行文件;
在一个新文件夹存放这个文件,运行它;
通常可以一路回车使用默认设置完成安装,安装完成后程序自动退出;
运行
mcl.cmd启动,成功后会看到绿色的mirai-console started successfully。
初始化
第一次运行 mcl.cmd 时会初始化运行环境。下表说明了各个文件夹的用途。
| 文件夹名称 | 用途 |
|---|---|
scripts |
存放启动器的脚本,一般不需要在意他们 |
plugins |
存放插件 |
data |
存放插件的数据,一般不需要在意它们 |
config |
存放插件的配置,可以打开并修改配置 |
logs |
存放运行时的日志,日志默认保留 7 天 |
插件
chat-command: 允许在聊天环境通过以 “/” 起始的消息执行指令
mirai-api-http:提供 HTTP 支持,允许使用其他编程语言的插件
在哪找社区插件
Mirai 官方论坛 Mirai Forum
注:此段大部分参考 俪欣佳网络工作室,欢迎串门
使用 GO-CQHttp或mirai框架 搭建QQ的机器人的更多相关文章
- 【2022.04.19】Docker-compose一键安装mirai,搭建QQ机器人最快方法
先用官方的脚本安装下docker curl -sSL https://get.docker.com/ | sh 安装docker-compose curl -L "https://githu ...
- Mirai框架qq机器人教程 新版
Mirai框架qq机器人教程 新版 前言 资料列表 1.准备 i. 配置java环境 ii. 配置IDE iii. 下载mirai-console-loader(mcl)作为启动器 2.创建mirai ...
- Mirai框架qq机器人教程
Mirai框架qq机器人教程 0.前言 1. 安装Java 2.安装Mirai启动器 3.下载IDEA或其他编译器 4.创建mirai-console插件项目 4.1 通过git创建 4.2 通过插件 ...
- 搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 (1)
搭建QQ聊天通信的程序:(1)基于 networkcomms.net 创建一个WPF聊天客户端服务器应用程序 原文地址(英文):http://www.networkcomms.net/creating ...
- ABP框架搭建项目系列教程基础版完结篇
返回总目录<一步一步使用ABP框架搭建正式项目系列教程> 经过前面十二篇的基础教程,现在终于该做个总结了. 回顾 第一篇,我们建议新手朋友们先通过ABP官网的启动模板生成解决方案,因为这样 ...
- ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建
原文:ASP.NET MVC+EF框架+EasyUI实现权限管理系列(14)-主框架搭建 ASP.NET MVC+EF框架+EasyUI实现权限管系列 (开篇) (1):框架搭建 (2 ...
- go服务端----使用dotweb框架搭建简易服务
使用dotweb框架搭建简易服务 go语言web框架挺多的,所谓琳琅满目,里面也有很多优秀的,比如echo.beego等,但体验下来,总是觉得哪里有点小疙瘩,后来才明白过来,echo太简单,很多日常使 ...
- Unity 游戏框架搭建 (三) MonoBehaviour单例的模板
上一篇文章讲述了如何设计C#单例的模板.也随之抛出了问题: 如何设计接收MonoBehaviour生命周期的单例的模板? 如何设计? 先分析下需求: 1.约束脚本实例对象的个数. 2.约束 ...
- Unity 游戏框架搭建 (二) 单例的模板
上一篇文章中说到的manager of managers,其中每个manager都是单例的实现,当然也可以使用静态类实现,但是相比于静态类的实现,单例的实现更为通用,可以适用大多数情况. 如何设计 ...
随机推荐
- 数字IC笔试题-芯源
前言 由于最近开始找数字IC的工作,所以准备多练笔试题,下面贴上芯源笔试题,来源微信公众号<数字IC打工人> 参考资源: 1. mu_guang_ 2. 李锐博恩 3. 长弓的坚持 4. ...
- ShardingSphere-Proxy(一)
1.现实中的问题 我们知道数据库的数据,基本80%的业务是查询,20%的业务涵盖了增删改,经过长期的业务变更和积累数据库的数据到达了一定的数量之后,直接影响的是用户与系统的交互,查询时的速度,插入数据 ...
- 两个对象值相同(x.equals(y) == true),但却可有不同的hash code,这句话对不对?
对. 因为equals()方法可以用开发者重写,hashCode()方法也可以由开发者来重写,因此它们是否相等并没有必然的关系. 如果对象要保存在HashSet或HashMap中,它们的equals( ...
- 线程的 sleep()方法和 yield()方法有什么区别?
① sleep()方法给其他线程运行机会时不考虑线程的优先级,因此会给低优先级的线程以运行的机会:yield()方法只会给相同优先级或更高优先级的线程以运行的机会: ② 线程执行 sleep()方法后 ...
- Linux编译安装软件常见问题及排查
1.配置cmake参数时提示: The C compiler identification is unknown. The CXX compiler identification is unknown ...
- 机器学习之linear_model (线性回归算法模型)
1.matplotlib 首先看一下这个静态图绘制模块 静态图形处理 数据分析三剑客 Numpy : 主要为了给pandas提供数据源 pandas : 更重要的数据结构 matplotlib : 静 ...
- 为什么HTTP/3要基于UDP?可靠吗?
目录 前言 为什么转用UDP? HTTP/3解决了那些问题? 队头阻塞问题 QPACK编码 Header 参考 推荐阅读: 计算机网络汇总 HTTP/3竟然是基于UDP的!开始我也很疑惑,UDP传输不 ...
- CommonsCollection3
CommonsCollection3 1.前置知识 CommonsCollection3其实就是cc1和cc2的组合,不用再学那么多知识了,再学习另两个生面孔类 1.1.InstantiateTran ...
- ajax解析json对象集合
这个需求是我们做项目经常遇到的,当你想渲染表格的数据,你的数据在servlet中存在了arraylist中,你想把arraylist传到ajax的data中,这时候就需要用到ObjectMapper对 ...
- 高效使用Java构建工具,Maven篇|云效工程师指北
大家好,我是胡晓宇,目前在云效主要负责Flow流水线编排.任务调度与执行引擎相关的工作. 作为一个有多年Java开发测试工具链开发经验的CRUD专家,使用过所有主流的Java构建工具,对于如何高效使用 ...