前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >mirai QQ机器人最详细教程 [附Q群消息转发例程]

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

作者头像
小锋学长生活大爆炸
发布2022-03-29 13:43:39
13.7K0
发布2022-03-29 13:43:39
举报
文章被收录于专栏:小锋学长生活大爆炸

转载请注明出处,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、上传到服务器,并给上执行权限(可以放到一个新建文件夹里面方便管理)

代码语言:javascript
复制
sudo chmod +x mcl-installer-752c228-linux-amd64

3、然后执行安装

代码语言:javascript
复制
./mcl-installer-752c228-linux-amd64

4、然后可以一路回车,保持默认项即可,等待安装完成。如果报错就多试几次。(嫌麻烦的,java自己另外装也行,这里就选择N,推荐!!看第5步后面部分

5、如果上面安装了java, 则要添加java环境变量

代码语言:javascript
复制
sudo vim ~/.bashrc

最后添加

代码语言:javascript
复制
export JAVA_HOME=/home/<自己路径>/mcl/java
export CLASSPATH=$CLASSPATH:$JAVA_HOME/lib:$JAVA_HOME/bin

然后激活和测试下

代码语言:javascript
复制
source ~/.bashrc
java -version

上面的我没成功,所以选择自己另外单独装Java(推荐)。装完也不用配置环境,都已经自动配完了~

代码语言:javascript
复制
# 32位的就在最后加上   :i386
sudo apt install openjdk-11-jre-headless

# 或者直接装jdk
sudo apt-get install default-jdk

卸载jdk也方便

代码语言:javascript
复制
sudo apt-get remove openjdk*

6、安装插件。Mirai 官方提供两个插件:

  • chat-command: 允许在聊天环境通过以 "/" 起始的消息执行指令
  • mirai-api-http:提供 HTTP 支持,允许使用其他编程语言的插件
代码语言:javascript
复制
./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,还需要:

  1. 编辑config/net.mamoe.mirai-api-http/setting.yml配置文件 (没有则自行创建)
  2. 启动MCL ./mcl
  3. 如果手动安装则启动 mirai-console(不建议)
  4. 记录日志中出现的authKey

setting.yml模板

代码语言:javascript
复制
## 配置文件中的值,全为默认值

## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
adapters:
  - http
  - ws

## 是否开启认证流程, 若为 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 使用说明 配置
  ws:
    host: localhost
    port: 8080
    reservedSyncId: -1

更具体的内容,可到插件仓库查看(一般开个http就够用了):

GitHub - project-mirai/mirai-api-http: Mirai HTTP API (console) plugin

7、运行mcl。第一次运行 mcl时会初始化运行环境。

代码语言:javascript
复制
./mcl

如果遇到报错,可以尝试

代码语言:javascript
复制
./mcl --update-package net.mamoe:mirai-core-all --channel nightly

如果还报错,建议先检查Java版本是否正确,之前我在这卡了好久,后来卸载重装java11就好了。

如果报错类似'double kotlin.time.DurationKt.toDuration(int, java.util.concurrent.TimeUnit)',不知道是不是最新版的bug,可以:

先用指令禁掉自动更新脚本,

代码语言:javascript
复制
mcl -d updater

然后修改下config.json文件,参考如下:

代码语言:javascript
复制
{
  "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内置命令解释可看:

https://github.com/mamoe/mirai-console/blob/master/docs/BuiltInCommands.md#mirai-console---builtin-commands

查看帮助

代码语言:javascript
复制
/help

登录qq

代码语言:javascript
复制
/autoLogin add <account> <password> [passwordKind]    # 添加自动登录
代码语言:javascript
复制
/login <qq> <password> [protocol]    # 登录一个账号

此时可能会需要手机验证,注意这个链接只在QQ浏览器或者手机QQ内可以打开,所以可以发到手机上去打开认证:

修改protocol

这里可以设置不同的protocol,就可以设定为不同平台登录,好处是这样就可以一个账号多处登录。有:

configKey

可选值

protocol

ANDROID_PHONE / ANDROID_PAD / ANDROID_WATCH

代码语言:javascript
复制
 /autoLogin setConfig qq号  protocol ANDROID_WATCH

删除自动登录qq

代码语言:javascript
复制
/autoLogin remove qq号

基础使用到这里ok啦~

Python编程控制

这里用到了mirai-api-http插件,上面装了,没装的回过去看下。

具体的详细内容可看官网:

GitHub - project-mirai/mirai-api-http: Mirai HTTP API (console) pluginMirai HTTP API (console) plugin. Contribute to project-mirai/mirai-api-http development by creating an account on GitHub.https://github.com/project-mirai/mirai-api-http

在线文档

mirai

https://docs.mirai.mamoe.net/mirai-api-http/

开始使用

  1. 编辑config/net.mamoe.mirai-api-http/setting.yml配置文件 (没有则自行创建)
  2. 启动MCL ./mcl
  3. 如果手动安装则启动 mirai-console(不建议)
  4. 记录日志中出现的authKey
代码语言:javascript
复制
## 配置文件中的值,全为默认值

## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
adapters:
  - http
  - ws

## 是否开启认证流程, 若为 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 使用说明 配置
  ws:
    host: localhost
    port: 8080
    reservedSyncId: -1

目前上面我们只用http就可以了,其他的后面用到再说。

接下来主要看文档这个部分:

Http Adapter | mirai

https://docs.mirai.mamoe.net/mirai-api-http/adapter/HttpAdapter.html下面以“QQ群消息转发为例”,提供测试例程,效果:

Python代码见:

mirai QQ机器人最详细教程 - 小锋学长生活大爆炸mirai QQ机器人最详细教程

http://xfxuezhang.cn/index.php/archives/246/

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022/02/18 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装
  • 使用
    • 查看帮助
      • 登录qq
        • 修改protocol
          • 删除自动登录qq
          • Python编程控制
          相关产品与服务
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档