[舊]純小白也能用termux在手機上搭建zerobot的教程
建議去看新主頁里的教程https://b23.tv/rT1vl9u
舊教程末尾的問題解決和評論可以看一下。
準備:termux、兩個QQ號、一定的信息檢索能力、腦子和手。

機器人項目鏈接https://github.com/FloatTech/ZeroBot-Plugin

zerobot機器人有三種使用方法1. 使用穩(wěn)定版/測試版2. 本地直接運行3. 編譯運行。教程里提供前兩種方法,學會第一種就已經搭建好機器人了,第二種是便于后續(xù)對機器人功能的自定義。

首先要安裝TMOE ubuntu容器,參考這篇專欄,唯一不同的是我們不選擇ArchLinux,而是Ubuntu20.04LTS,有的話就跳過吧。

? ?emm,我把圖片放出來吧

唯一不同的是我們不選擇ArchLinux,而是Ubuntu20.04LTS
? ? ? 下面的命令均在root用戶下使用
第一種:?使用穩(wěn)定版/測試版
1.為機器人創(chuàng)建一個目錄
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服務器監(jiān)聽地址
? ? ?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]: 網絡診斷完成. 未發(fā)現問題
? ? 我們用快捷鍵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
? ? ? ? ? ?開發(fā)群:752669987, 進階開發(fā)群: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]本地環(huán)回初始化完成
INFO[0005] [thesaurus]加載 116 條kimoi
INFO[0005] [thesaurus]加載 4775 條傲嬌詞庫 12209 條可愛詞庫
我們打開主人的QQ賬號,對著機器人賬號私聊發(fā)送/全局響應? ? ? 一定要帶上/? ?機器人回復開始工作之類的話就說明機器人搭建成功了
第二種:本地運行(好處是可以對機器人的功能進行自定義)
??1.安裝go語言環(huán)境(最新的)
? ? ①在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
? ? ③添加到環(huán)境變量中
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的前提并新建窗口的前提下執(zhí)行source /etc/profile然后執(zhí)行cd /home/ZeroBot-Plugin進入機器人目錄,執(zhí)行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,暫時只想到這些問題,其它問題請到評論區(qū)補充。