[旧]纯小白也能用termux在手机上搭建zerobot的教程
建议去看新主页里的教程https://b23.tv/rT1vl9u
旧教程末尾的问题解决和评论可以看一下。
准备:termux、两个QQ号、一定的信息检索能力、脑子和手。

机器人项目链接https://github.com/FloatTech/ZeroBot-Plugin

zerobot机器人有三种使用方法1. 使用稳定版/测试版2. 本地直接运行3. 编译运行。教程里提供前两种方法,学会第一种就已经搭建好机器人了,第二种是便于后续对机器人功能的自定义。

首先要安装TMOE ubuntu容器,参考这篇专栏,唯一不同的是我们不选择ArchLinux,而是Ubuntu20.04LTS,有的话就跳过吧。

emm,我把图片放出来吧

唯一不同的是我们不选择ArchLinux,而是Ubuntu20.04LTS
下面的命令均在root用户下使用
第一种: 使用稳定版/测试版
1.为机器人创建一个目录
cd /home
mkdir zerobot
cd /home/zerobot
2.安装go-cqhttp
①下载go-cqhttp(这一步不成功的话多试几次,实在不行就要加速了)
wget https://github.com/Mrs4s/go-cqhttp/releases/download/v1.0.0-rc3/go-cqhttp_1.0.0-rc3_linux_arm64.deb
②安装go-cqhttp
dpkg -i go-cqhttp_1.0.0-rc3_linux_arm64.deb
③运行一下,选择2:正向Websocket通信
go-cqhttp
④之后会生成一个配置文件config.yml,我们编辑一下
apt -y install nano
nano config.yml
找到以下内容,按照#后面的提示改
# go-cqhttp 默认配置文件
account:
uin: 1233456 # 此处填入机器人的QQ号,注意不能和主人是同一个QQ号
password: '' # 这里先不要填入密码,第一次先扫码登录
encrypt: false
status: 0
relogin:
delay: 3
interval: 3
max-times: 0
翻到最后,将这里的8080改为6700
# 正向WS设置
- ws:
# 正向WS服务器监听地址
address: 0.0.0.0:8080
middlewares:
<<: *default # 引用默认中间件
保存退出,方法是Ctrl+x,输入y并回车。然后再输入go-cqhttp运行一下程序,按照程序里的提示输入扫码登录对应的序号并回车。如是手机QQ最新版扫码失败或不让扫码,可以用Tim这个软件扫码。注意是用机器人的QQ账号扫。成功登录会有下面的界面
[2022-12-30 14:54:25] [INFO]: 当前版本:v1.0.0-rc3
[2022-12-30 14:54:25] [INFO]: 将使用 device.json 内的设备信息运行Bot.
[2022-12-30 14:54:25] [INFO]: Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消.
[2022-12-30 14:54:30] [INFO]: 开始尝试登录并同步消息...
[2022-12-30 14:54:30] [INFO]: 使用协议: iPad
[2022-12-30 14:54:31] [INFO]: Protocol -> connect to server: 111.31.205.233:8080
[2022-12-30 14:54:31] [WARNING]: Protocol -> device lock is disable. http api may fail.
[2022-12-30 14:54:38] [INFO]: 登录成功 欢迎使用: 椛椛
[2022-12-30 14:54:38] [INFO]: 开始加载好友列表...
[2022-12-30 14:54:38] [INFO]: 共加载 42 个好友.
[2022-12-30 14:54:38] [INFO]: 开始加载群列表...
[2022-12-30 14:54:38] [INFO]: 共加载 26 个群.
[2022-12-30 14:54:39] [INFO]: 资源初始化完成, 开始处理信息.
[2022-12-30 14:54:39] [INFO]: アトリは、高性能ですから!
[2022-12-30 14:54:39] [INFO]: 正在检查更新.
[2022-12-30 14:54:39] [INFO]: CQ HTTP 服务器已启动: [::]:8080 #我自己用的是8060的端口
[2022-12-30 14:54:39] [INFO]: CQ WebSocket 服务器已启动: [::]:8060
[2022-12-30 14:54:39] [INFO]: 检查更新完成. 当前已运行最新版本.
[2022-12-30 14:54:39] [INFO]: 开始诊断网络情况
[2022-12-30 14:54:42] [INFO]: 网络诊断完成. 未发现问题
我们用快捷键Ctrl+c关掉程序,然后输入nano config.yml,在密码那一栏的引号里输入机器人QQ密码,保存退出(这个已经会了吧)。最后输入go-cqhttp启动程序,这样以后就不用每次都要扫码登录了。
3.安装zbp(机器人主体)
按住手机屏幕左边缘往右滑,选择new session(新建窗口),输入debian进入容器
①进入刚才给机器人的专用目录,下载zbp(机器人主体)这一步不成功的话也多试几次,实在不行就加速一下
cd /home/zerobot
wget https://github.com/FloatTech/ZeroBot-Plugin/releases/download/v1.6.1-beta3/zbp_linux_arm64.deb
②安装zbp(把下面的dpkj换成dpkg,输错了)
dpkj -i zbp_linux_arm64.deb
③运行一下,生成配置文件
zbp -s config.json
④编辑一下配置文件config.json
nano config.json
找到下面内容,按照#后面的提示修改
{
"zero": {
"nickname": [
"椛椛", #这里的椛椛可以换成你喜欢的名称
"ATRI",
"atri",
"亚托莉",
"アトリ"
],
"command_prefix": "/",
"super_users": [], #在方括号里填入机器人主人的QQ
"ring_len": 4096,
"latency": 233000000,
"max_process_time": 240000000000
},
"ws": [
{
"Url": "ws://127.0.0.1:6700",#看到了吗,这里是6700,这里的数字必须和go-cqhttp中的一样
"AccessToken": ""
}
],
"wss": null
}
保存退出,方法是Ctrl+x,输入y并回车。接着输入zbp -c config.json当你看到这个输出结果就说明成功了
INFO[0001] [web] 本机支持ipv6
INFO[0001] [file]加载md5数据库...
INFO[0001] [file]md5数据库已是最新
======================[ZeroBot-Plugin]======================
* OneBot + ZeroBot + Golang
* Version v1.6.1-beta3 - 2022-12-26 13:45:09 +0800 CST
* Copyright © 2020 - 2022 FloatTech. All Rights Reserved.
* Project: https://github.com/FloatTech/ZeroBot-Plugin
----------------------[ZeroBot-公告栏]----------------------
QQ群:1048452984, 2群:915103207
开发群:752669987, 进阶开发群:705749886
禁止用于违法用途
============================================================
INFO[0004] [main] 从 config.json 读取配置文件
INFO[0004] [ws] 开始尝试连接到Websocket服务器: ws://127.0.0.1:8060
INFO[0004] [ws] 连接Websocket服务器: ws://127.0.0.1:8060 成功, 账号: xxxxxxxxxx(保密)
INFO[0005] [job]本地环回初始化完成
INFO[0005] [thesaurus]加载 116 条kimoi
INFO[0005] [thesaurus]加载 4775 条傲娇词库 12209 条可爱词库
我们打开主人的QQ账号,对着机器人账号私聊发送/全局响应 一定要带上/ 机器人回复开始工作之类的话就说明机器人搭建成功了
第二种:本地运行(好处是可以对机器人的功能进行自定义)
1.安装go语言环境(最新的)
①在home目录下载最新包
cd /home
wget https://golang.google.cn/dl/go1.19.4.linux-arm64.tar.gz
②解压并删除下载的包
tar -C /usr/local -xzvf go1.19.4.linux-arm64.tar.gz
rm go1.19.4.linux-arm64.tar.gz
③添加到环境变量中
nano /etc/profile
在最后一行添加如下内容
# Golang
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
最后的效果是这样的
# /etc/profile: system-wide .profile file for the Bourne shell (sh(1))
# and Bourne compatible shells (bash(1), ksh(1), ash(1), ...).
if [ "${PS1-}" ]; then
if [ "${BASH-}" ] && [ "$BASH" != "/bin/sh" ]; then
# The file bash.bashrc already sets the default PS1.
# PS1='\h:\w\$ '
if [ -f /etc/bash.bashrc ]; then
. /etc/bash.bashrc
fi
else
if [ "`id -u`" -eq 0 ]; then
PS1='# '
else
PS1='$ '
fi
fi
fi
if [ -d /etc/profile.d ]; then
for i in /etc/profile.d/*.sh; do
if [ -r $i ]; then
. $i
fi
done
unset i
fi
# Golang
export GOROOT=/usr/local/go
export PATH=$PATH:$GOROOT/bin
保存退出,方法是Ctrl+x,输入y并回车。
最后source它
source /etc/profile
可以输入go version检查一下。若是输出go version go1.19.4 linux/arm64就成功了
2.安装ZeroBot-Plugin
①克隆仓库
cd /home
git clone https://github.com/FloatTech/ZeroBot-Plugin.git
②编辑main.go文件
nano /home/ZeroBot-Plugin/main.go
往下翻找到如下内容。
// 默认昵称
adana := flag.String("n", "椛椛", "Set default nickname.")#可以把椛椛换掉
prefix := flag.String("p", "/", "Set command prefix.")
runcfg := flag.String("c", "", "Run from config file.")
save := flag.String("s", "", "Save default config to file and exit.")
late := flag.Uint("l", 233, "Response latency (ms).")
rsz := flag.Uint("r", 4096, "Receiving buffer ring size.")
maxpt := flag.Uint("x", 4, "Max process time (min).")
还有这个,按照#后面的提示改。
// 通过代码写死的方式添加主人账号
// sus = append(sus, 123456)#将括号里的数字换成机器人主人的QQ号
// sus = append(sus, 87654321)#有强迫症的可以把两个括号里的都改掉
改完后删掉前面的注释(就是//)如下。
// 通过代码写死的方式添加主人账号
sus = append(sus, xxxxxxxx保密)
sus = append(sus, xxxxxxxx保密)
保存退出,方法是Ctrl+x,输入y并回车(这话说了几遍了!?)
最后运行一下run.sh
sh run.sh
启动后当你看到最后几行和zbp启动后的输出差不多时就成功了,记住一定要先启动go-cqhttp
但如果是下面这样的输出就和你的操作没关系了,等待官方(或你自己bushi)修复吧。
goroutine 1 [running]:
github.com/FloatTech/zbputils/control.init.2()
/root/go/pkg/mod/github.com/!float!tech/zbputils@v1.6.1-0.20221212090658-d0de5338e354/control/servicepic.go:47 +0x7c
exit status 2

教程已经结束了,接下来是一些问题的解决
Q:关了termux后如何启动机器人?
A:对于第一种,在打开termux软件后输入debian进入容器,然后输入cd /home/zerobot进入机器人的目录,接 着输入go-cqhttp来启动Go-cqhttp程序,然后新建窗口,再debian进入容器,输入cd /home/zerobot进入机 器人的目录,最后输入zbp -c config.json来启动机器人主体。
对于第二种,在启动go-cqhttp的前提并新建窗口的前提下执行source /etc/profile然后执行cd /home/ZeroBot-Plugin进入机器人目录,执行sh run.sh来启动机器人。
Q:zbp或是ZeroBot-Plugin一直显示连接到Websocket服务器 ws://127.0.0.1:6700 时出现错误: dial tcp 127.0.0.1:6700: connect: connection refused
A:可能是没有启动go-cqhttp或是没有把端口改为6700
Q:机器人能和主人共用一个QQ号吗?
A:不能,去注册一个。
Q:go-cqhttp登录机器人QQ号失败,说是被冻结等理由
A:把机器人账号的登录保护关掉
emm,暂时只想到这些问题,其它问题请到评论区补充。