Python+mirai开发QQ机器人起步教程(2021.9.9测试有效)
参考:开发 mirai QQ机器人起步教程_叹之-CSDN博客_mirai python
本篇文章参考了以上博客,并对其中的失效内容和版本匹配问题进行了补充修改,实测能够成功运行。部分步骤的运行截图见该博客,请互相参照阅读。
0. 配置jdk,版本必须为OpenJDK>=11
OracleJDK未经测试,不保证能正常运行
1. 下载mirai-console-loader(mcl),版本必须为1.2.2
iTXTech/mirai-console-loader: 模块化、轻量级且支持完全自定义的 mirai 加载器。 (github.com)
mcl命令使用方法见下文档:mirai-console-loader/README.md at master · iTXTech/mirai-console-loader (github.com)
2. 添加mirai-api-http(mah)插件,版本必须为1.12.0
project-mirai/mirai-api-http at 9628ab1767f088822f713c166eb127840a69de81 (github.com)
cd ./mcl-1.2.2
sh ./mcl --update-package net.mamoe:mirai-api-http --channel stable --type plugin --version 1.12.0
sh ./mcl --dry-run
如果自动下载出现corrupt报错,可以手动下载mirai-api-http-v1.12.0.mirai.jar,并将其放入mcl-1.2.2/plugins文件夹中
3. 禁用mcl的updater脚本,防止自动升级
sh ./mcl --disable-script updater
4. 检查版本对应
此时,注意检查mcl-1.2.2/config.json文件内容应和以下相同,需要特别注意:mirai-console、mirai-console-terminal、mirai-core-all的版本为2.7.*,mirai-api-http的版本为1.12.0,"disabled_scripts": ["updater"] !!
{
"js_optimization_level": -1,
"mirai_repo": "https://gitee.com/peratx/mirai-repo/raw/master",
"maven_repo": [
"https://maven.aliyun.com/repository/public"
],
"packages": [
{
"id": "org.bouncycastle:bcprov-jdk15on",
"channel": "stable",
"version": "1.64",
"type": "libs",
"versionLocked": false
},
{
"id": "org.itxtech:mcl-addon",
"channel": "c122",
"version": "1.2.2",
"type": "plugins",
"versionLocked": false
},
{
"id": "net.mamoe:mirai-console",
"channel": "stable",
"version": "2.7.0",
"type": "libs",
"versionLocked": false
},
{
"id": "net.mamoe:mirai-console-terminal",
"channel": "stable",
"version": "2.7.0",
"type": "libs",
"versionLocked": false
},
{
"id": "net.mamoe:mirai-core-all",
"channel": "stable",
"version": "2.7.0",
"type": "libs",
"versionLocked": false
},
{
"id": "net.mamoe:mirai-api-http",
"channel": "stable",
"version": "1.12.0",
"type": "plugins",
"versionLocked": false
}
],
"disabled_scripts": [
"updater"
],
"proxy": "",
"log_level": 1,
"script_props": {}
}
检查mcl-1.2.2/libs和mcl-1.2.2/plugins中的jar包存在且与上述文件中的版本匹配!!
参考:mirai更新到2.7M1后mirai-api-http插件无法使用 | MiraiForum (mamoe.net)
5. 配置mah,必须按照1.x的文档进行配置
project-mirai/mirai-api-http at 9628ab1767f088822f713c166eb127840a69de81 (github.com)
修改mcl-1.2.2/config/net.mamoe.mirai-api-http/setting.yml文件,可直接复制以下配置
## 该配置为全局配置,对所有Session有效
# 可选,默认值为0.0.0.0
host: '0.0.0.0'
# 可选,默认值为8080
port: 8080
# 可选,默认由插件第一次启动时随机生成,建议手动指定
authKey: 1234567890
# 可选,缓存大小,默认4096.缓存过小会导致引用回复与撤回消息失败
cacheSize: 4096
# 可选,是否开启websocket,默认关闭,建议通过Session范围的配置设置
enableWebsocket: true
# 可选,配置CORS跨域,默认为*,即允许所有域名
cors:
- '*'
## 消息上报
report:
# 功能总开关
enable: false
# 群消息上报
groupMessage:
report: false
# 好友消息上报
friendMessage:
report: false
# 临时消息上报
tempMessage:
report: false
# 事件上报
eventMessage:
report: false
# 上报URL
destinations: []
# 上报时的额外Header
extraHeaders: {}
## 心跳
heartbeat:
# 功能总开关
enable: false
# 启动延迟
delay: 1000
# 心跳间隔
period: 15000
# 心跳上报URL
destinations: []
# 上报时的额外信息
extraBody: {}
# 上报时的额外头
extraHeaders: {}
6. 安装MiraiAndroid
mirai-login-solver-selenium和TxCaptchaHelper均无法正常工作(2021.9.9)!
参考:无法登录的临时处理方案 | MiraiForum (mamoe.net)
github:mzdluo123/MiraiAndroid: QQ机器人 /(实验性)在Android上运行Mirai-console,支持插件 (github.com)
下载:https://install.appcenter.ms/users/mzdluo123/apps/miraiandroid/distribution_groups/release
使用前环境准备:
在
mirai运行时中添加 JVM 属性mirai.slider.captcha.supported(添加参数-Dmirai.slider.captcha.supported) 以确认手动完成滑动验证上面的看不懂没关系,直接看下面的操作操作步骤:对于
mirai-console-loader, 打开mcl(Linux)或mcl.bat(Windows), 在java ..... -jar ....命令中的-jar前加入参数-Dmirai.slider.captcha.supported,Linux修改后的结果如下:
#!/usr/bin/env sh
export JAVA_BINARY=java
$JAVA_BINARY -Dmirai.slider.captcha.supported -jar mcl.jar $*
- 如果运行于
mirai-console, 需要在plugins内删除mirai-login-solver-selenium插件- 如果直接基于
mirai-core开发, 需要删除mirai-login-solver-selenium依赖
使用方法:
下载之后安装到你的手机上,并且完成登录;登录方法在主屏幕右上角的设置自动登录里,登录过程中需要验证请在通知栏内点击通知完成验证。
登录成功后到左边菜单内找到高级功能(工具),选择你的账号(选择一个bot)之后导出设备文件(device.json)发送到电脑,并覆盖电脑版文件(Linux下路径为mcl-1.2.2/bots/qq号/device.json)。
再运行mcl脚本
cd ./mcl-1.2.2
sh ./mcl
等待mcl开启后输入以下命令即可成功登陆:
> login qq号 qq密码
7. 安装graia-application-mirai,注意需要降级版本才能正常运行
参考配置:安装并配置开发环境 | Graia Document (graia-document.vercel.app)
GraiaProject/Application: 一个设计精巧, 协议实现完备的, 基于 mirai-api-http 的即时聊天软件自动化框架. (github.com)
cannot import name 'BaseDispatcher' · Issue #161 · GraiaProject/Application (github.com)
pip install graia-application-mirai==0.18.4
创建bot.py文件,修改bot.py中的host、authKey与mirai-api-http的配置相同,修改account,websocket改为true
from graia.broadcast import Broadcast
from graia.application import GraiaMiraiApplication, Session
from graia.application.message.chain import MessageChain
import asyncio
from graia.application.message.elements.internal import Plain
from graia.application.friend import Friend
loop = asyncio.get_event_loop()
bcc = Broadcast(loop=loop)
app = GraiaMiraiApplication(
broadcast=bcc,
connect_info=Session(
host="http://localhost:8080", # 填入 httpapi 服务运行的地址
authKey="graia-mirai-api-http-authkey", # 填入 authKey
account=****, # 你的机器人的 qq 号
websocket=True # Graia 已经可以根据所配置的消息接收的方式来保证消息接收部分的正常运作.
)
)
@bcc.receiver("FriendMessage")
async def friend_message_listener(app: GraiaMiraiApplication, friend: Friend):
await app.sendFriendMessage(friend, MessageChain.create([
Plain("Hello, World!")
]))
app.launch_blocking()
运行bot.py
python bot.py
然后向你的QQ机器人,随便发送一条消息,如果它回复你Hello, World!,则表示运行成功
Python+mirai开发QQ机器人起步教程(2021.9.9测试有效)的更多相关文章
- Mirai框架qq机器人教程 新版
Mirai框架qq机器人教程 新版 前言 资料列表 1.准备 i. 配置java环境 ii. 配置IDE iii. 下载mirai-console-loader(mcl)作为启动器 2.创建mirai ...
- Mirai框架qq机器人教程
Mirai框架qq机器人教程 0.前言 1. 安装Java 2.安装Mirai启动器 3.下载IDEA或其他编译器 4.创建mirai-console插件项目 4.1 通过git创建 4.2 通过插件 ...
- 酷Q机器人,QQ机器人使用教程
软件介绍: 酷Q,软件酷Q机器人是一款基于webqq开发的一款自动接收.处理qq消息的软件. 改程序使用易语言编写,精简大量不必要代码,减小了软件体积,优化程序速度,使得酷Q更加轻巧好用. 在消息处理 ...
- 使用酷Q SDK开发QQ机器人
酷Q SDK下载地址:https://github.com/CoolQ/cqsdk-vc 打开工程,编辑appmain.cpp 将“私聊消息”处的代码 更改为 CQEVENT(int32_t, __e ...
- 【转】windows和linux中搭建python集成开发环境IDE
本系列分为两篇: 1.[转]windows和linux中搭建python集成开发环境IDE 2.[转]linux和windows下安装python集成开发环境及其python包 3.windows和l ...
- windows和linux在建筑python集成开发环境IDE
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- 【Python开发】python集成开发环境IDE搭建
http://blog.csdn.net/pipisorry/article/details/39854707 使用的系统及软件 Ubuntu / windows Python 2.7 / pytho ...
- 西秦的ACE-Python教程 一、Python本地开发环境部署
西秦的ACE-Python教程 一.Python本地开发环境部署 西秦 级别: 论坛版主 发帖 1357 云币 2782 加关注 写私信 只看楼主 更多操作楼主 发表于: 10-10 ...
- python实现qq机器人qqbot
title: python实现qq机器人qqbot tags: python date: 2018-6-1 10:19:00 --- 以下内容为转载 一.介绍 qqbot 是一个用 python 实现 ...
随机推荐
- Python - 基础数据类型 dict 字典
字典简介 字典在 Python 里面是非常重要的数据类型,而且很常用 字典是以关键字(键)为索引,关键字(键)可以是任意不可变类型 字典由键和对应值成对组成,字典中所有的键值对放在 { } 中间,每一 ...
- 微信小程序 -- 英语词典 (小程序插件)
英语词典小程序 基于英语词典小程序插件 - 提供开源地址 项目地址 英语词典小程序插件: 微信小程序 词典 真题基础服务插件(gitee.com) 功能特色 [x] 全面详实的经典词库,详细释义覆盖约 ...
- Gateway网关匹配规则
Gateway匹配规则 重要概念 路由 route 断言 predicate 过滤器 fliter 一.时间匹配 在 after 时间之后的所有请求转发到 URI中的地址 gateway: disco ...
- 大数据学习(06)——Ozone介绍
前面几篇文章把Hadoop常用的模块都学习了,剩下一个新模块Ozone,截止到今天最新版本是0.5.0Beta,还没出正式版.好在官方网站有文档,还是中文版的,但是中文版资料没有翻译完整,我试着把它都 ...
- 37岁Android程序员被裁员,面试大厂被拒,降薪去小公司,心更凉了
在职场论坛看到这样一个帖子,程序员小A被前公司裁员了,裁员之后也并没有特别气馁,打算重头再来,结果却被现实打击到了. 他大学毕业的时候进入到一家知名互联网公司上班,工作期间,也是不断学习,提升自己的能 ...
- Nacos 权限控制介绍及实战
方案背景 Nacos自开源依赖,权限控制一直需求比较强烈,这也反应了用户需求将Nacos部署到生产环境的需求.最新发布的Nacos 1.2.0版本已经支持了服务发现和配置管理的权限控制,保障用户安全上 ...
- Tengine2.3+openssl1.1.1支持TLS1.3
安装包下载: openssl1.1.1 链接:https://pan.baidu.com/s/1-qCDhkLtlkT0fdwKdVuh2g 提取码:0ncc pcre3.2.1 链接:https:/ ...
- hg的常用配置
hg的配置文件分为全局配置和每个Repo自己的配置,Ubuntu系统下全局配置文件是~/.hgrc,Win7系统下是C:\Users\chad\mercurial.ini,各repo的配置文件是$RE ...
- iOS开发之GIF转MP4
前言 最近遇到需要将gif转化为mp4的问题,网上找的在线转换限制太多,索性就自己写了一个工具APP.文章末尾有开源代码和打包好的APP,如有需要请自行下载. 效果图 核心代码 来源 import I ...
- Echarts 展示两条动态数据曲线
利用Echarts 展示两条动态数据曲线,每1秒刷新一下数据,在echart官网例子基础上修改,修改了仿真数据的生成方式.生成数量,曲线数量,最总效果图如下: 详细代码如下: 遇到的主要问题点, 1, ...