mirai QQ机器人最详细教程 [附Q群消息转发例程]

转载请注明出处,Thanks♪(・ω・)ノ
先上大家最感兴趣的 效果图 :
1、QQ群消息互转发

2、类似Qmsg的消息推送

安装
https://github.com/mamoe/mirai/blob/dev/docs/UserManual.md
这里使用的是“ 纯控制台版本 ”
1、先去下载安装脚本
https://github.com/iTXTech/mcl-installer/releases
这里下的是Linux版本,你也可以选其他的
2、上传到服务器,并给上执行权限(可以放到一个新建文件夹里面方便管理)
sudo chmod +x mcl-installer-752c228-linux-amd64
3、然后执行安装
./mcl-installer-752c228-linux-amd64
4、然后可以一路回车,保持默认项即可,等待安装完成。如果报错就多试几次。(嫌麻烦的,java自己另外装也行,这里就选择N, 推荐!!看第5步后面部分 )

5、如果上面安装了java, 则要添加java环境变量
sudo vim ~/.bashrc
最后添加
export JAVA_HOME=/home/<自己路径>/mcl/java
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/bin
然后激活和测试下
source ~/.bashrc
java -version

上面的我没成功,所以选择自己另外单独装Java( 推荐 )。装完也不用配置环境,都已经自动配完了~
# 32位的就在最后加上 :i386
sudo apt install openjdk-11-jre-headless
# 或者直接装jdk
sudo apt-get install default-jdk
卸载jdk也方便
sudo apt-get remove openjdk*
6、安装插件。Mirai 官方提供两个插件:
- chat-command : 允许在聊天环境通过以 "/" 起始的消息执行指令
- mirai-api-http :提供 HTTP 支持,允许使用其他编程语言的插件
./mcl --update-package net.mamoe:chat-command --channel stable --type plugin
./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin
对于mirai-api-http,还需要:
-
编辑
config/net.mamoe.mirai-api-http/setting.yml
配置文件 (没有则自行创建) -
启动MCL
./mcl
-
如果手动安装则启动
mirai-console
(不建议) -
记录日志中出现的
authKey
setting.yml模板
## 配置文件中的值,全为默认值
## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
adapters:
- http
## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
## 建议公网连接时开启
enableVerify: true
verifyKey: 1234567890
## 开启一些调式信息
debug: false
## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot
## 开启后,接口中任何 sessionKey 不需要传递参数
## 若 console 中有多个 bot 登录,则行为未定义
## 确保 console 中只有一个 bot 登陆时启用
singleMode: false
## 历史消息的缓存大小
## 同时,也是 http adapter 的消息队列容量
cacheSize: 4096
## adapter 的单独配置,键名与 adapters 项配置相同
adapterSettings:
## 详情看 http adapter 使用说明 配置
http:
host: localhost
port: 8080
cors: ["*"]
## 详情看 websocket adapter 使用说明 配置
host: localhost
port: 8080
reservedSyncId: -1
更具体的内容,可到插件仓库查看(一般开个http就够用了):
GitHub - project-mirai/mirai-api-http: Mirai HTTP API (console) plugin
7、运行mcl。第一次运行
mcl
时会初始化运行环境。
./mcl

如果遇到报错,可以尝试
./mcl --update-package net.mamoe:mirai-core-all --channel nightly
如果还报错,建议先检查Java版本是否正确,之前我在这卡了好久,后来卸载重装java11就好了。
如果报错类似'double kotlin.time.DurationKt.toDuration(int, java.util.concurrent.TimeUnit)',不知道是不是最新版的bug,可以:
先用指令禁掉自动更新脚本,
mcl -d updater
然后修改下config.json文件,参考如下:
{
"js_optimization_level": -1,
"mirai_repo": "https://gitee.com/peratx/mirai-repo/raw/master",
"maven_repo": [
"https://maven.aliyun.com/repository/public"
"packages": [
"id": "net.mamoe:mirai-console",
"channel": "stable",
"version": "2.6.7",
"type": "libs",
"versionLocked": true
"id": "net.mamoe:mirai-console-terminal",
"channel": "stable",
"version": "2.6.7",
"type": "libs",
"versionLocked": true
"id": "net.mamoe:mirai-core-all",
"channel": "beta",
"version": "",
"type": "libs",
"versionLocked": false
"id": "org.itxtech:mcl-addon",
"channel": "c122",
"version": "",
"type": "plugins",
"versionLocked": false
"disabled_scripts": [],
"proxy": "",
"log_level": 1,
"script_props": {}
}

安装搞定!!
使用
以下指令都在通过“./mcl”启动后输入执行。
更多mcl内置命令解释可看:
查看帮助
/help

登录qq
/autoLogin add <account> <password> [passwordKind] # 添加自动登录

/login <qq> <password> [protocol] # 登录一个账号
此时可能会需要手机验证,注意这个链接只在QQ浏览器或者手机QQ内可以打开,所以可以发到手机上去打开认证:


修改protocol
这里可以设置不同的protocol,就可以设定为不同平台登录,好处是这样就可以一个账号多处登录。有:
configKey |
可选值 |
---|---|
protocol |
ANDROID_PHONE / ANDROID_PAD / ANDROID_WATCH |
/autoLogin setConfig qq号 protocol ANDROID_WATCH
删除自动登录qq
/autoLogin remove qq号
基础使用到这里ok啦~
Python编程控制
这里用到了 mirai-api-http 插件,上面装了,没装的回过去看下。
具体的详细内容可看官网:
在线文档
https://docs.mirai.mamoe.net/mirai-api-http/
开始使用
-
编辑
config/net.mamoe.mirai-api-http/setting.yml
配置文件 (没有则自行创建) -
启动MCL
./mcl
-
如果手动安装则启动
mirai-console
(不建议) -
记录日志中出现的
authKey
## 配置文件中的值,全为默认值
## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
adapters:
- http
## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
## 建议公网连接时开启
enableVerify: true
verifyKey: 1234567890
## 开启一些调式信息
debug: false
## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot
## 开启后,接口中任何 sessionKey 不需要传递参数
## 若 console 中有多个 bot 登录,则行为未定义
## 确保 console 中只有一个 bot 登陆时启用
singleMode: false
## 历史消息的缓存大小
## 同时,也是 http adapter 的消息队列容量
cacheSize: 4096
## adapter 的单独配置,键名与 adapters 项配置相同
adapterSettings:
## 详情看 http adapter 使用说明 配置
http:
host: localhost
port: 8080
cors: ["*"]