写在最前
由于酷Q已经阵亡,QQ机器人满天飞的时代似乎已经变的一去不复返,很多不缺钱的小伙伴可能纷纷转向了官方机器人,不过似乎官方机器人也太不给力了,无法自定义太多的行为,也没有自定义API。博主一度放弃了QQ机器人,而转向了TG,确实TG拥有更为良好的生态,不过却无法在大陆使用。后来陆续出现了很多,根据以前CQ转向的大佬开发,我也一直想写一篇文章,由于太忙,某些搭建起来可能也有点费事,所以一直没有动。这次看了这款机器人,我眼前一亮,确实很简单哈,写一篇文章抛砖引玉,后续将会介绍更多的功能如插件安装等等,本文只介绍搭建方法。
作者GH:https://github.com/Mrs4s/go-cqhttp
防跑路:https://github.com/swjsky/go-cqhttp
releases:https://github.com/Mrs4s/go-cqhttp/releases
程序安装
CentOS7
#这里我用的是centos7-x64的系统,win系统不用讲了吧。 #版本为go-cqhttp-v0.9.39 #请提前自备好QQ
更新系统
#一般本步骤基本可以忽略
#安装wget
yum install wget
#更新一下
yum updata
开启端口
#注意这里端口号为默认的5700和9999,若有冲突,可以在后续配置文件中修改 firewall-cmd --zone=public --add-port=5700/tcp --permanent firewall-cmd --zone=public --add-port=9999/tcp --permanent firewall-cmd --reload
创建目录
#使用git安装的可以直接无视
mkdir /CQ-GO &&cd /CQ-GO
下载程序
#版本地址,请根据系统自行下载 https://github.com/Mrs4s/go-cqhttp/releases #win64 https://github.com/Mrs4s/go-cqhttp/releases/download/v0.9.39/go-cqhttp-v0.9.39-windows-amd64.exe #win32 https://github.com/Mrs4s/go-cqhttp/releases/download/v0.9.39/go-cqhttp-v0.9.39-windows-386.exe #linux64 https://github.com/Mrs4s/go-cqhttp/releases/download/v0.9.39/go-cqhttp-v0.9.39-linux-amd64 #linux32 https://github.com/Mrs4s/go-cqhttp/releases/download/v0.9.39/go-cqhttp-v0.9.39-linux-386 #下载程序重新命名为go-cq wget https://github.com/Mrs4s/go-cqhttp/releases/download/v0.9.39/go-cqhttp-v0.9.39-linux-amd64 &&mv go-cqhttp-v0.9.39-linux-amd64 go-cq
程序授权
chmod +x ./cq-go
运行程序
./cq-go
编辑配置
运行时,自动生成一个配置文件config.hjson,编辑配置文件,输入你的QQ号码和密码,其他的不懂的不要乱写。
/* go-cqhttp 默认配置文件 */ { // QQ号,必填 uin: // QQ密码,必填 password: "" // 是否启用密码加密 encrypt_password: false // 加密后的密码, 如未启用密码加密将为空, 请勿随意修改. password_encrypted: "" // 是否启用内置数据库 // 启用将会增加10-20MB的内存占用和一定的磁盘空间 // 关闭将无法使用 撤回 回复 get_msg 等上下文相关功能 enable_db: true // 访问密钥, 强烈推荐在公网的服务器设置 access_token: "" // 重连设置 relogin: { // 是否启用自动重连 // 如不启用掉线后将不会自动重连 enabled: true // 重连延迟, 单位秒 relogin_delay: 3 // 最大重连次数, 0为无限制 max_relogin_times: 0 } // 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_size: 1 } // 是否忽略无效的CQ码 // 如果为假将原样发送 ignore_invalid_cqcode: false // 是否强制分片发送消息 // 分片发送将会带来更快的速度 // 但是兼容性会有些问题 force_fragmented: false // 心跳频率, 单位秒 // -1 为关闭心跳 heartbeat_interval: 0 // HTTP设置 http_config: { // 是否启用正向HTTP服务器 enabled: true // 服务端监听地址 host: 0.0.0.0 // 服务端监听端口 port: 5700 // 反向HTTP超时时间, 单位秒 // 最小值为5,小于5将会忽略本项设置 timeout: 0 // 反向HTTP POST地址列表 // 格式: // { // 地址: secret // } post_urls: {} } // 正向WS设置 ws_config: { // 是否启用正向WS服务器 enabled: true // 正向WS服务器监听地址 host: 0.0.0.0 // 正向WS服务器监听端口 port: 6700 } // 反向WS设置 ws_reverse_servers: [ // 可以添加多个反向WS推送 { // 是否启用该推送 enabled: false // 反向WS Universal 地址 // 注意 设置了此项地址后下面两项将会被忽略 // 留空请使用 "" reverse_url: ws://you_websocket_universal.server // 反向WS API 地址 reverse_api_url: ws://you_websocket_api.server // 反向WS Event 地址 reverse_event_url: ws://you_websocket_event.server // 重连间隔 单位毫秒 reverse_reconnect_interval: 3000 } ] // 上报数据类型 // 可选: string array post_message_format: string // 是否使用服务器下发的新地址进行重连 // 注意, 此设置可能导致在海外服务器上连接情况更差 use_sso_address: false // 是否启用 DEBUG debug: false // 日志等级 log_level: "" // WebUi 设置 web_ui: { // 是否启用 WebUi enabled: true // 监听地址 host: 127.0.0.1 // 监听端口,冲突了可以自己修改 web_ui_port: 9999 // 是否接收来自web的输入 web_input: false } }
配置QQ
填入授权文件后,重新运行程序
#我这里的提示仅供参考 [2021-02-01 22:12:01] [WARNING]: 尝试加载配置文件 config.hjson 失败: 文件不存在 [2021-02-01 22:12:01] [INFO]: 默认配置文件已生成, 请编辑 config.hjson 后重启程序.
程序重启后的提示
[root@xxxx CQ-GO]# ./go-cq [2021-02-01 22:17:27] [INFO]: 当前版本:v0.9.39 [2021-02-01 22:17:27] [INFO]: 用户交流群: 721829413 [2021-02-01 22:17:27] [WARNING]: 虚拟设备信息不存在, 将自动生成随机设备. [2021-02-01 22:17:27] [INFO]: 已生成设备信息并保存到 device.json 文件. [2021-02-01 22:17:27] [INFO]: Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消. [2021-02-01 22:17:32] [INFO]: 开始尝试登录并同步消息... [2021-02-01 22:17:32] [INFO]: 使用协议: iPad [2021-02-01 22:17:34] [INFO]: Protocol -> connect to server: 203.205.255.221:8080 [2021-02-01 22:17:34] [INFO]: Admin API 服务器已启动: 127.0.0.1:9999 [2021-02-01 22:23:56] [WARNING]: 登录需要滑条验证码, 请选择解决方案: [2021-02-01 22:23:56] [WARNING]: 1. 自行抓包. (推荐) [2021-02-01 22:23:56] [WARNING]: 2. 使用Cef自动处理. [2021-02-01 22:23:56] [WARNING]: 3. 不提交滑块并继续.(可能会导致上网环境异常错误) [2021-02-01 22:23:56] [WARNING]: 详细信息请参考文档 -> https://github.com/Mrs4s/go-cqhttp/blob/master/docs/slider.md <- [2021-02-01 22:23:56] [WARNING]: 请输入(1 - 3):
这个时候建议选1,自动配置会简单一点,如果你是在本机搭建那么选3问题也不大,不过也可能需要验证
1 [2021-02-01 22:24:09] [WARNING]: 请用浏览器打开 -> https://ssl.captcha.qq.com/template/wireless_mqq_captcha.html?style=simple&aid=16&uin=xxxxxxxxx&sid=xxxxxxxxxxx&cap_cd=xxxxxxxxxxxxxxxxxxxx**&clientype=1&apptype=2 <- 并获取Ticket.
注意这个时候SSH提示一个网址,需要你打开浏览器去提交验证码,并获取Ticket。先不要打开,看看这里https://github.com/Mrs4s/go-cqhttp/blob/master/docs/slider.md
争取获取并输入了之后,可能还需要设备锁验证
[2021-02-01 22:24:09] [WARNING]: 请输入Ticket: (Enter 提交) t03V01C6Bqw3o-1nT01U32yUjaOkfXXc-JRe8vgd2vYLd6a4pmR5Ob_GCxxxxxxxxxxxxxxxOE9nKeQbYgPNfWniR2Qi8Om7pyacf-6yoiX [2021-02-01 22:27:51] [WARNING]: 账号已开启设备锁,请选择验证方式: [2021-02-01 22:27:51] [WARNING]: 1. 向手机 xxxxxxxxx 发送短信验证码 [2021-02-01 22:27:51] [WARNING]: 2. 使用手机QQ扫码验证. [2021-02-01 22:27:51] [WARNING]: 请输入(1 - 2):
这个时候你自己选择,个人建议选择扫码验证
2 [2021-02-01 22:28:01] [WARNING]: 请前往 -> https://ti.qq.com/safe/verify?_wv=2&_wwv=128&uin=1xxxxxxx&sig=kE1fWcxxxxxxxxxxxx6nV3Zo2oBMRmp83m%2Bkn%2F2UWAgto6ZdRwBpHQsEbbvX2Bw4iV1e%2BLbt2u9a%2B1p1SssrvCDh728Qn9SJ <- 验证并重启Bot. [2021-02-01 22:28:01] [INFO]: 按 Enter 继续....
我选择的2,把上面的网址输入到浏览器,之后用手机扫码验证了。基本验证完毕
再次重启
完成以上基本就可以了,再次运行程序即可,我的CM给你参考一下,楼主尝试了一下,机器人正常工作了。
[root@xiaolong CQ-GO]# ./go-cq [2021-02-01 22:30:25] [INFO]: 当前版本:v0.9.39 [2021-02-01 22:30:25] [INFO]: 用户交流群: 721829413 [2021-02-01 22:30:25] [INFO]: 将使用 device.json 内的设备信息运行Bot. [2021-02-01 22:30:25] [INFO]: Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消. [2021-02-01 22:30:30] [INFO]: 开始尝试登录并同步消息... [2021-02-01 22:30:30] [INFO]: 使用协议: iPad [2021-02-01 22:30:31] [INFO]: Protocol -> connect to server: 203.205.255.221:8080 [2021-02-01 22:30:31] [INFO]: Admin API 服务器已启动: 127.0.0.1:9999 [2021-02-01 22:30:33] [INFO]: 登录成功 欢迎使用: 采矿小七 [2021-02-01 22:30:34] [INFO]: 开始加载好友列表... [2021-02-01 22:30:34] [INFO]: 共加载 4 个好友. [2021-02-01 22:30:34] [INFO]: 开始加载群列表... [2021-02-01 22:30:34] [INFO]: 共加载 0 个群. [2021-02-01 22:30:34] [INFO]: 信息数据库初始化完成. [2021-02-01 22:30:34] [INFO]: 正在加载事件过滤器. [2021-02-01 22:30:34] [WARNING]: 事件过滤器启动失败: open filter.json: no such file or directory [2021-02-01 22:30:34] [INFO]: 正在加载silk编码器... [2021-02-01 22:30:34] [INFO]: 资源初始化完成, 开始处理信息. [2021-02-01 22:30:34] [INFO]: アトリは、高性能ですから! [2021-02-01 22:30:34] [INFO]: CQ Websocket 服务器已启动: 0.0.0.0:6700 [2021-02-01 22:30:34] [INFO]: 正在检查更新. [2021-02-01 22:30:34] [INFO]: CQ HTTP 服务器已启动: 0.0.0.0:5700 [2021-02-01 22:30:35] [INFO]: 检查更新完成. 当前已运行最新版本. [2021-02-01 22:31:08] [INFO]: 收到好友 山涧小石(666666) 的消息: .... (1934610795) [2021-02-01 22:31:23] [INFO]: 收到好友 山涧小石(666666) 的消息: 验证成功了哈 (1171455752) [2021-02-01 22:31:38] [INFO]: Bot 账号在客户端 iPhone (iPhone) 登出. [2021-02-01 22:31:59] [INFO]: 收到好友 山涧小石(666666) 的消息: 你是不是管理员啊 (852873118) [2021-02-01 22:35:32] [INFO]: 收到好友 山涧小石(666666) 的消息: 你真的是不是管理员啊 (-1411604956) [2021-02-01 22:35:57] [INFO]: 收到好友 山涧小石(666666) 的消息: 天下无鱼,shikey.com。测试成功否 (-589582670) [2021-02-01 22:38:24] [INFO]: Bot进入了群 无鱼博客VIP群(26847206). [2021-02-01 22:39:06] [INFO]: 收到群 无鱼博客VIP群(666666) 内 山涧小石(666666) 的消息: [CQ:at,qq=666666] 文件说明 (-1359505521)
程序守护
#名字随意取了,我这里用go-cq cat > /etc/systemd/system/go-cq.service <<EOF [Unit] Description=go-cq After=network.target [Service] Type=simple ExecStart=/CQ-GO/go-cq Restart=on-failure [Install] WantedBy=multi-user.target EOF
开机启动、重启、结束
#启动并设置开机自启 systemctl start go-cq systemctl enable go-cq #重启程序 systemctl restart go-cq #结束进程 systemctl stop go-cq
写在最后
非常感谢这些大佬的无私分享,程序运行非常不错。
1、占用内存极少。基本上256内存都跑起来。
2、安装简单,使用GO语言,平台移植性能高。