欢迎光临散文网 会员登陆 & 注册

[旧]纯小白也能用termux在手机上搭建zerobot的教程

2022-12-30 16:54 作者:蜃依  | 我要投稿

建议去看新主页里的教程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,暂时只想到这些问题,其它问题请到评论区补充。

[旧]纯小白也能用termux在手机上搭建zerobot的教程的评论 (共 条)

分享到微博请遵守国家法律