解决AcFunLive的mirai机器人无法使用的问题

阅读次数:

*注意,mirai无法启动仅针对在windows下使用时出现,linux并无此问题。

使用最新的acfunlive源码编译windows-gui并使用时发现,执行 acfunlive.exe -mirai 会直接开始程序的运行,跳过mirai登录验证场景并报错: error: read /dev/stdin: The handle is invalid 这个问题苦恼了我很久,之前都时再开个linux虚拟机单独跑录播机器人,但是一想到之前也碰到过mirai机器人无法登录的问题,最终解决方式是通过gocqhttp生成device和session文件替换到程序目录中以骗过程序你已经登陆过了。 以下是操作流程:

  1. 下载并配置go-cqhttp 到官网下载当前环境配置版本的go-cqhttp,此处我是windows,直接下载windows_x64版本。下载后双击运行exe,提示无法直接运行,之后生成一个bat文件,双击go-cqhttp.bat文件运行,然后输入1回车,提示默认配置文件已生成,请修改 config.yml 后重新启动!后关闭窗口。 2023-05-05T15:19:44.png 修改config.yml,主要是修改uin这一项,其他不用管(因为之后使用的是watch协议登录,所以不需要填密码),修改后保存文件。 2023-05-05T15:21:51.png 再次双击go-cqhttp.bat文件运行,在提示Bot将在5秒后登录并开始信息处理, 按 Ctrl+C 取消.后按Ctrl+C中断程序运行。 2023-05-05T15:24:27.png 然后目录下会生成一个device.json文件,打开并将"protocol":6的值修改成2,保存。然后再次双击go-cqhttp.bat文件运行,一段时间后他会提示你扫码登录,使用登录了同一个账号的手机扫码会提示是一个手表设备,确认登录。等出现如下内容时可以关闭程序。并看到目录下生成了sesssion.token这个文件。 2023-05-05T15:29:31.png
  2. 修改acfunlive配置 把gocqhttp目录下的sesssion.tokendevice.json复制到acfunlive目录(保险起见可以全部复制过去),然后将其重命名为qqsesssion.tokenqqdevice.json,此时目录结构如下所示。 2023-05-05T15:32:12.png 此时在powershell下执行.\acfunlive.exe -mirai或者正常启动到http://localhost:51880/startmirai再打开http://localhost:51880/log可以看到已经登录成功了。 2023-05-05T15:34:40.png 如果提示要扫码,那么会在acfunlive的目录下有一个qqqrcode.png文件,打开用手机扫码登录即可。
本博客已稳定运行
使用 Hugo 构建