前言

本教程虽然演示centos7平台安装,但安装思路全平台通用,唯一区别为安装包不同 我尝试了好多机器人框架,大部分都开发前景不好,无意中发现了这个go-cqhttp机器人框架,使用http协议将消息推送到URL上面,也是使用URL对他回应,即可实现发信

go-cqhttp框架下载

我这里使用centos7系统进行演示,因为任何对象,对大众提供服务,都需要极高的稳定性和可靠性,而Linux系列的操作系统就是为此开发出来的。Linux系列系统,对服务器的占用极低,可靠性高,而centos7就是Linux系列的一个分支,使用人群广泛 go-cqhttp官方发布页面 官方帮助文档 进入发布页往下滑,会看到以下内容,因为我部署的linux系列的操作系统,所以我使用红框圈起来的包,下载下来,将其上传的服务器

安装go-cqhttp

将文件上传到服务器,然后使用tar命令进行解压(tar命令系统自带) 解压后会出现三个文件,我们只使用go-cqhttp文件 执行go-http文件,在编号选择里面,只选择HTTP通信即可 (编号填写错误,可使用组合键Ctrl + 删除) 执行完成会在同级目录下生成config.yml配置文件 详细操作步骤,参考下图

更改config.yml配置文件

由于文件内容过多,我这里直接放上我的配置文件内容 您只需要修改文件中的第二行 uin: # 这里填入你的机器人账号 示例: uin: 3351593463

# go-cqhttp 默认配置文件

account: # 账号相关

uin: # QQ账号

password: '' # 密码为空时使用扫码登录

encrypt: false # 是否开启密码加密

status: 0 # 在线状态 请参考 https://docs.go-cqhttp.org/guide/config.html#在线状态

relogin: # 重连设置

delay: 3 # 首次重连延迟, 单位秒

interval: 3 # 重连间隔

max-times: 0 # 最大重连次数, 0为无限制

# 是否使用服务器下发的新地址进行重连

# 注意, 此设置可能导致在海外服务器上连接情况更差

use-sso-address: true

heartbeat:

# 心跳频率, 单位秒

# -1 为关闭心跳

interval: 5

message:

# 上报数据类型

# 可选: string,array

post-format: string

# 是否忽略无效的CQ码, 如果为假将原样发送

ignore-invalid-cqcode: false

# 是否强制分片发送消息

# 分片发送将会带来更快的速度

# 但是兼容性会有些问题

force-fragment: false

# 是否将url分片发送

fix-url: false

# 下载图片等请求网络代理

proxy-rewrite: ''

# 是否上报自身消息

report-self-message: false

# 移除服务端的Reply附带的At

remove-reply-at: false

# 为Reply附加更多信息

extra-reply-data: false

# 跳过 Mime 扫描, 忽略错误数据

skip-mime-scan: false

output:

# 日志等级 trace,debug,info,warn,error

log-level: warn

# 日志时效 单位天. 超过这个时间之前的日志将会被自动删除. 设置为 0 表示永久保留.

log-aging: 15

# 是否在每次启动时强制创建全新的文件储存日志. 为 false 的情况下将会在上次启动时创建的日志文件续写

log-force-new: true

# 是否启用 DEBUG

debug: false # 开启调试模式

# 默认中间件锚点

default-middlewares: &default

# 访问密钥, 强烈推荐在公网的服务器设置

access-token: ''

# 事件过滤器文件目录

filter: ''

# API限速设置

# 该设置为全局生效

# 原 cqhttp 虽然启用了 rate_limit 后缀, 但是基本没插件适配

# 目前该限速设置为令牌桶算法, 请参考:

# https://baike.baidu.com/item/%E4%BB%A4%E7%89%8C%E6%A1%B6%E7%AE%97%E6%B3%95/6597000?fr=aladdin

rate-limit:

enabled: false # 是否启用限速

frequency: 1 # 令牌回复频率, 单位秒

bucket: 1 # 令牌桶大小

database: # 数据库相关设置

leveldb:

# 是否启用内置leveldb数据库

# 启用将会增加10-20MB的内存占用和一定的磁盘空间

# 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能

enable: true

# 连接服务列表

servers:

# 添加方式,同一连接方式可添加多个,具体配置说明请查看文档

#- http: # http 通信

#- ws: # 正向 Websocket

#- ws-reverse: # 反向 Websocket

#- pprof: #性能分析服务器

# HTTP 通信设置

- http:

# 服务端监听地址

host: 0.0.0.0

# 服务端监听端口

port: 5700

# 反向HTTP超时时间, 单位秒

# 最小值为5,小于5将会忽略本项设置

timeout: 5

# 长轮询拓展

long-polling:

# 是否开启

enabled: false

# 消息队列大小,0 表示不限制队列大小,谨慎使用

max-queue-size: 2000

middlewares:

<<: *default # 引用默认中间件

# 反向HTTP POST地址列表

post :

#- url: '' # 地址

# secret: '' # 密钥

- url: 'http://127.0.0.1:5701' # 地址

secret: '' # 密钥

启动go-cqhttp

没错,go-cqhttp的安装过程就是如此简单 我们只需要执行这个命令就可以启动了

./go-cqhttp

执行后会出现下面的内容,里面也会有一个二维码,提前使用手机登录机器人QQ然后扫码进行登录授权即可

[root@starry tmp]# ./go-cqhttp

[2022-06-14 19:27:25] [WARNING]: 账号密码未配置, 将使用二维码登录.

[2022-06-14 19:27:25] [WARNING]: 将在 5秒 后继续.

[2022-06-14 19:27:30] [INFO]: 当前版本:v1.0.0-rc2

[2022-06-14 19:27:30] [WARNING]: 虚拟设备信息不存在, 将自动生成随机设备.

[2022-06-14 19:27:30] [INFO]: 已生成设备信息并保存到 device.json 文件.

[2022-06-14 19:27:30] [INFO]: Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消.

[2022-06-14 19:27:35] [INFO]: 开始尝试登录并同步消息...

[2022-06-14 19:27:35] [INFO]: 使用协议: iPad

[2022-06-14 19:27:35] [INFO]: Protocol -> connect to server: [::ffff:42.81.194.38]:80

持久化运行go-cqhttp

当然,上面的使用./go-cqhttp但连接窗口关闭之后将停止运行,这是我们不愿意看到的。 我们可以让他运行在服务器的后台,只有服务器不关机,它将一直运行

nohup ./go-cqhttp &

运行之后,会在当前目录下生成一个叫nohup.out的日志文件, 里面存放的是这个程序在运行的是生成的日志

小结

到此,安装go-cqhttp的教程结束了,本人也基于go-cqhttp开发了一款对话机器人,全部代码使用Python语言编写 当然编写的全部过程我将在这里编写出来,也可以加入我的个人工作室(星辰工作室)目前就我一个人,开发速度实在有限 下面的是我的星辰机器人的展示群聊,感兴趣的可以加入看看 QQ演示群聊加群链接