使用 Mirai 部署 QQ 机器人

背景

希望将特定的 QQ 群消息同步创建到外部任务清单中。

注意

  1. 由于 QQ 官方封杀机器人十分频繁,因此不能保证服务的持续运行。见 https://github.com/MrXiaoM/qsign/releases/tag/1.2.0-final
  2. 本文写作时间为 2023 年 10 月 29 日,不保证时效性。

步骤

  1. 准备一台 Ubuntu 22.04 Server,我使用的是 华为云;
  2. 下载 https://github.com/iTXTech/mcl-installer/releases/tag/ae9f946/data/mirai
  3. 给予文件安装权限:
sudo chmod +x mcl-installer-ae9f946-linux-amd64
  1. 安装并一路回车
./mcl-installer-ae9f946-linux-amd64
  1. 安装 2 个插件:
# chat-command:允许在聊天环境通过以 “/” 起始的消息执行指令
./mcl --update-package net.mamoe:chat-command --channel stable --type plugin

# mirai-api-http :提供 HTTP 支持,允许使用其他编程语言的插件
./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin
  1. 根据 https://github.com/MrXiaoM/qsign/tree/mirai#部署方法 安装 qsign
  2. 登录 QQ
/login <QQ 账户> <QQ 密码> ANDROID_PHONE
  1. 如需要进行验证,可以使用 https://maupdate.rainchan.win/txcaptcha.apk 进行滑块验证:
    1. 将 terminal 中的链接贴在这个 APK 应用中;
    2. 获取到 Ticket 后,粘贴在 Terminal 中;
    3. 如遇登录失败,参考 https://mirai.mamoe.net/topic/2357/qsign-签名-大概率解决code-45

进阶

原始需求是将群消息转发到外部服务,因此在安装了 mirai-api-http 后进行了配置:

  1. 关于 Adaptors 地址:https://github.com/project-mirai/mirai-api-http/blob/master/docs/adapter/Adapter.md
  2. 创建了一个 Webhook 地址;
  3. 更新 /root/data/mirai/config/net.mamoe.mirai-api-http/settings.yml配置
adapters:
  - webhook
debug: true
enableVerify: true
verifyKey: <配置 VerifyKey>
singleMode: false
cacheSize: 4096
persistenceFactory: 'built-in'
adapterSettings:
  webhook:
    timeout:
      requestTimeoutMillis: 100000
      connectTimeoutMillis: 100000
      socketTimeoutMillis: 100000
    destinations:
      - 'https://qq-to-feishu.juzhiyuan.me'

参考

  1. http://xfxuezhang.cn/index.php/archives/246/
  2. https://mirai.mamoe.net/topic/2357/qsign-签名-大概率解决code-45
  3. https://blog.csdn.net/qq_43576891/article/details/121576879
  4. https://mirai.mamoe.net/topic/653/常用资源整合?lang=en-GB
  5. https://blog.ukenn.top/mirai/
  6. https://mirai.mamoe.net/

Oct 29, 2023

  • 补充:在发送了一些随机消息后,腾讯官方会直接风控账户。