*注意,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

  1. 修改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文件,打开用手机扫码登录即可。

最后修改:2023 年 05 月 05 日
如果觉得我的文章对你有用,请随意赞赏