MiraiForum

    • 注册
    • 登录
    • 搜索
    • 热门
    • 最新
    • 未解决
    • 标签
    • 群组
    • 友情链接
    1. 主页
    2. linux-rm
    3. 帖子
    • 资料
    • 关注 0
    • 粉丝 0
    • 主题 6
    • 帖子 33
    • 最佳 0
    • 有争议的 0
    • 群组 0

    linux-rm 发布的帖子

    • 高中学业水平考试倒计时

      linux-rm/mirai 高中学业水平考试倒计时机器人

      mirai 高中学业水平考试倒计时机器人

      本工具会在早上和晚上指定时间推送中考倒计时

      [广告]如果你对IT(信息技术)感兴趣,可以加入QQ群951234938

      使用方法

      插件目前仅支持 单机器人, 符合 关闭认证 流程的 单 session 模式,后续会开发认证模块

      请配置 config/net.mamoe.mirai-api-http/setting.yml,确保程序正常运行

      adapters:
          - http
      
      ## 关闭认证流程
      enableVerify: false
      verifyKey: 0
      
      ## 开启单 session 模式
      ## 确保 console 中只有一个 bot 登录
      singleMode: false
      
      adapterSettings:
          http:
              host: 0.0.0.0 ## 接收地址
              port: 8080 ## 端口
      

      克隆本仓库(Windows 请使用 PowerShell)

      git clone https://gitee.com/linux-rm/mirai-exam.git
      

      修改 head/httpC.hpp 的 主机 和 端口 ,使得其能正常连接 mirai-api-http, 示例:

      #define host "127.0.0.1" // 主机
      #define port 8080        // 端口
      

      你也可以适当配置main.cpp

      注意

      插件默认推送2026届全国统考倒计时

      #define VOICE_ON 1			// 开启/关闭语音消息,经测试不稳定,慎用
      #define END_TIME 1780794000 // 全国统考时间戳(默认为26届全国统考)
      
      #define STOP_TEXT "结束运行\n" // 结束程序信息
      
      #define BEGINING_MESSAGE "已开始\n" // 高考已开始
      #define DOING_MESSAGE "进行中\n"	// 高考进行中
      #define STOPING_MESSAGE "已结束\n"	// 高考已结束
      
      #define MORNING_POST 9 // 早上推送时间
      #define NIGHT_POST 21// 晚上推送时间
      
      long group[] =
      {
      	XXXXXXXXX,
      	XXXXXXXXX,
          XXXXXXXXX
      }; // 要发送的群聊,不要贪心,防止风控
      
      bool in_debug = false; // 默认关闭调试
      

      之后,linux用户在终端输入:

      make # 编译
      ./test # 运行
      

      Windows,MacOS用户请自行研究

      [广告]如果你对IT(信息技术)感兴趣,可以加入QQ群951234938

      文档结束,就这么简单

      发布在 插件发布
      linux-rm
      linux-rm
    • RE: 二维码扫码登录

      我能正常使用

      发布在 插件发布
      linux-rm
      linux-rm
    • RE: 挂服务器手机输入地址后没验证

      @MrXiaoM

      -Dmlss.port=11451

      好臭

      发布在 BUG反馈
      linux-rm
      linux-rm
    • RE: 二维码扫码登录

      @Excalibur5100 是的

      发布在 插件发布
      linux-rm
      linux-rm
    • RE: 请问大佬们怎么不用电脑运行mirai

      @fog233331 Termux

      发布在 摸鱼区
      linux-rm
      linux-rm
    • RE: 使用 Termux 简单的在安卓手机上 运行 Mirai

      @cssxsh 在 使用 Termux 简单的在安卓手机上 运行 Mirai 中说:

      termux-tts-speak ①①④⑤①④

      这臭得连声音都不发出

      可以试试

      espeak 114514
      
      发布在 技术交流板块
      linux-rm
      linux-rm
    • RE: 求助 linux 安装问题

      【QQ机器人-哔哩哔哩】 https://b23.tv/7IC304e

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: 求助 linux 安装问题

      方法完全错误

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: 无法连接到 mirai。请检查 mirai-api-http 是否启动,地址与端口是否正确。

      @stack-bit 是否解决

      发布在 HTTP API和第三方SDK
      linux-rm
      linux-rm
    • RE: mirai-api-http 使用方法(新手必看)

      @Mr-喜 我发现是因为gitee有图片防盗功能,换成github镜像站就可以了

      发布在 HTTP API和第三方SDK
      linux-rm
      linux-rm
    • RE: 怎么把指定权限给所有群的管理员和群主?

      觉得麻烦可以自行写个插件自动给

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: 怎么把指定权限给所有群的管理员和群主?

      只能一个一个给

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: mirai-api-http 使用方法(新手必看)

      我为此制作了一个易用的开源mirai-api-http交互工具

      主站 gitee

      linux-rm/mirai-api-http交互工具

      gitee

      备用镜像站 kgithub

      github

      备用站github

      发布在 HTTP API和第三方SDK
      linux-rm
      linux-rm
    • RE: 如何处理不安全验证码

      删除bots文件夹,重试

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: 如何处理不安全验证码

      可能不填

      发布在 使用交流
      linux-rm
      linux-rm
    • RE: 如何处理不安全验证码

      可能你需要先访问链接

      发布在 使用交流
      linux-rm
      linux-rm
    • mirai-api-http 使用方法(新手必看)

      一个易用的开源mirai-api-http交互工具

      mirai-api-http 使用方法(新手必看)

      安装mirai-api-http

      ./mcl --update-package net.mamoe:mirai-api-http --channel stable-v2 --type plugin
      ./mcl -u
      

      配置

      1. 编辑config/net.mamoe.mirai-api-http/setting.yml配置文件 (没有则自行创建)
      2. 启动MCL ./mcl
      3. 记录日志中出现的authKey(如果有)
        查看官方setting.yml模板
        或使用我的setting.yml模板
      ## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
      adapters:
      		- http
      
      ## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
      ## 建议公网连接时开启
      enableVerify: false
      verifyKey: 00000000
      
      ## 是否开启单 session 模式, 若为 true,则自动创建 session 绑定 console 中登录的 bot
      ## 开启后,接口中任何 sessionKey 不需要传递参数
      ## 若 console 中有多个 bot 登录,则行为未定义
      ## 确保 console 中只有一个 bot 登录时启用
      singleMode: true
      
      ## adapter 的单独配置,键名与 adapters 项配置相同
      adapterSettings:
      		## 详情看 http adapter 使用说明 配置
      		http:
      				host: 0.0.0.0
      				port: 8080
      				cors: ["*"]
      				unreadQueueMaxSize: 100
      
      

      验证

      打开浏览器或网络工具(如 curl),直接访问localhost:8080/about

      正常情况下会显示

      chrome-about

      curl-about

      {"code": 0,"msg": "","data": {"version":"xxx"}}
      

      证明安装并启动成功

      使用



      GET请求

      想一想刚刚验证插件时,我们在浏览器访问了localhost:8080/about

      查阅官方文档,发现/about Get 请求可以获取插件信息


      关于

      使用此方法获取插件的信息,如版本号

      [GET] /about
      

      通用接口定义: 关于


      仔细看,是不是我们在主机地址后面加入了和文档一样的/about

      如果成功,那么你学会了

      可能你会觉得难,但跟着我的步伐走绝对没错

      举一反三


      获取登录账号

      使用此方法获取所有当前登录账号

      [GET] /botList
      

      通用接口定义: 获取登录账号


      获取好友资料

      此接口获取好友的详细资料

      [GET] /friendProfile
      

      本接口为[GET]请求, 参数格式为url参数

      通用接口定义: 获取好友资料


      提示:

      1. 参数: 在原有的链接后面加上问号, 再接上名称1=参数1&名称2=参数2...

        例如:localhost:8080/friendProfile?target=114514

      2. 你可以在setting.yml里设置以下内容来禁用验证,或者不设置稍后学习POST得到sessionKey

      enableVerify: false
      verifyKey: 00000000
      singleMode: true
      


      POST 请求

      POST请求稍微复杂一些

      你需要其中一种方式配合网络工具 curl 使用:

      • 安卓手机 Termux
      • linux系统
      • windows10+
      • Mac OS

      或者电脑 Chrome / Chromium

      先别着急执行命令,因为命令中全部大写的单词 URL,TYPE,BODY参数还没给!!!

      curl

      终端命令用法:

      curl -X POST -H "Content-Type:TYPE" -d 'BODY' URL
      

      先别着急执行命令,因为命令中全部大写的单词 URL,TYPE,BODY参数还没给!!!

      电脑 Chrome/Chromium

      js命令用法:

      fetch(new Request('URL',{
      	method:'POST',
      	headers: {'Content-Type': 'TYPE'},
      	body:'BODY'
      }))
      

      先别着急执行命令,因为命令中全部大写的单词 URL,TYPE,BODY参数还没给!!!

      参数(仅JSON)

      URL

      其实,URL和Get请求相似,都是在主机地址后加上请求,这个我不再详细阐述

      localhost:8080/verify

      但参数要放在BODY里, 而且是json

      TYPE

      几乎都是application/json

      备注:只有多媒体内容上传才都是multipart/form-data,这个先忽略,作者还不会

      BDDY

      这是请求,你需要参阅文档并按实际情况修改

      查阅官方文档,发现/verify Post 请求可以认证


      认证

      接口名称

      [POST] /verify
      

      使用此方法验证你的身份,并返回一个会话

      请求:

      {
      	"verifyKey": "U9HSaDXl39ksd918273hU"
      }
      
      名字 类型 可选 举例 说明
      verifyKey String false "U9HSaDXl39ksd918273hU" 创建Mirai-Http-Server时生成的key,可在启动时指定或随机生成

      响应:

      {
      	"code": 0,
      	"session": "UnVerifiedSession"
      }
      
      名字 类型 举例 说明
      code Int 0 返回状态码
      session String "UnVerifiedSession" 你的session key

      session key 是使用以下方法必须携带的
      session key 使用前必须进行校验和绑定指定的Bot,每个Session只能绑定一个Bot,但一个Bot可有多个Session
      session Key 在未进行校验的情况下,一定时间后将会被自动释放


      示例:

      实际情况:

      ## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
      ## 建议公网连接时开启
      enableVerify: false
      verifyKey: 00000000
      
      {
      	"verifyKey": "00000000"
      }
      

      参数准备完毕,你可以尝试了

      curl:

      提示: curl的 BODY 参数可以换行

      curl -X POST -H "Content-Type:application/json" -d '
      {
      	"verifyKey": "00000000"
      }
      ' localhost:8080/verify
      

      js:

      js需要格外注意:

      1. URL 参数前一定要有 http://, 否则会提示不安全或403拒绝

      2. BODY 参数不能换行

      fetch(new Request('http://localhost:8080/verify',{
      	method:'POST',
      	headers: {'Content-Type': 'application/json'},
      	body:'{"verifyKey": "00000000"}'
      }))
      

      注:由于我关闭了verifyKey验证,所以提示"SINGLE_SESSION"

      curl

      js1

      js2

      注意


      传递(重要)

      sessionKey 作为会话的唯一标识, 它对应着服务器缓存及其上下文. 在 adapter 允许的情况下, 复用 sessionKey 创建多个连接会共享上下文

      HttpAdapter 允许复用 sessionKey 创建多个连接
      在 singleMode 模式下: 所有需要 sessionKey 参数的接口可忽略 sessionKey

      在非 singleMode 模式下 sessionKey 可通过以下方式传递:

      1. 设置请求头 sessionKey: YourSessionKey, 大小写敏感
      2. 设置请求头 Authorization: session YourSessionKey, Authorization 大小写敏感, session 大小写不敏感
      3. 设置请求头 Authorization: sessionKey YourSessionKey, Authorization 大小写敏感, sessionKey 大小写不敏感
      4. 通过 url参数(对于GET请求)或 json 参数(对于POST请求)填入 sessionKey 字段, 大小写敏感

      举一反三


      绑定

      [POST] /bind
      

      使用此方法校验并激活你的Session,同时将Session与一个已登录的Bot绑定

      请求:

      {
          "sessionKey": "UnVerifiedSession",
          "qq": 123456789
      }
      
      名字 类型 可选 举例 说明
      sessionKey String false "UnVerifiedSession" 你的session key
      qq Long false 123456789 Session将要绑定的Bot的qq号

      响应:

      {
          "code": 0,
          "msg": "success"
      }
      

      释放

      [POST] /release
      

      使用此方式释放session及其相关资源(Bot不会被释放)
      不使用的Session应当被释放,长时间(30分钟)未使用的Session将自动释放,否则Session持续保存Bot收到的消息,将会导致内存泄露(开启websocket后将不会自动释放)

      请求:

      {
          "sessionKey": "YourSessionKey",
          "qq": 123456789
      }
      
      名字 类型 可选 举例 说明
      sessionKey String false "YourSessionKey" 你的session key
      qq Long false 123456789 与该Session绑定Bot的QQ号码

      发送好友消息

      使用此方法向指定好友发送消息

      [POST] /sendFriendMessage
      

      本接口为[POST]请求, 参数格式为application/json

      通用接口定义: 发送好友消息


      更多:参阅官方文档

      发布在 HTTP API和第三方SDK
      linux-rm
      linux-rm
    • RE: 当前网络不稳定,登录失败

      并用手机 流量 热点登陆

      发布在 BUG反馈
      linux-rm
      linux-rm
    • 1
    • 2
    • 1 / 2