基于Mirai+python的QQ机器人部署教程
本环境出现不兼容问题,而且作者随缘更新了,建议大家可以尝试一下nonebot2,感觉挺好用的,nonebot这个的话文档比较详细一些,大家可以自己选择。
配置环境
- java环境 使用openJDK 版本大于11,本人使用的11.0.2
- Python环境 瞎整一个就完事,本人装的Python 3.8.7
- 下载启动器mcl,解压,启动,下载一些东西之后成功启动
启动之后的文件目录:
输入?可以查询一些功能
尝试登陆,输入login yourqq yourpassword,出现以下情况
还可能出现滑块验证,需要 下载mirai-login-solver-selenium将下载的jar文件放入plugins文件夹中,需要先安装 Chrome 浏览器,输入ticket通过验证即可.
滑块验证教程(需要使用Chrome浏览器)
通过验证即可登陆
4. 每次都要输入账号密码肯定很烦,参考autologin命令add一个账号即可,下次启动时就会自动登录了。(建议把登录qq的设备锁啥的都关掉,比较方便)
5. 下载mirai-api-http,将下载的jar文件放入plugins文件夹中,对接python,重启后会在config生成其对应的配置文件,注意配置好authKey(随意,不改的话似乎会出问题…),端口号如果被占用就换个其他的,具体的配置说明请参考官网
cors:
- '*'
host: 0.0.0.0
port: 8080
authKey: 123456
cacheSize: 4096
enableWebsocket: false
report:
enable: false
groupMessage:
report: true
friendMessage:
report: true
tempMessage:
report: true
eventMessage:
report: true
destinations: []
extraHeaders: {}
heartbeat:
enable: false
delay: 1000
period: 15000
destinations: []
extraBody: {}
extraHeaders: {}
- 安装 python 操作 mirai-api-http 接口的模块
pip install graia-application-mirai
至此环境搭建就完成了,可以愉快的使用python调用各种接口了
小例子
参考官网给出的小例子,给你的小机器人发送一个消息,他会回一个Hello,world!
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="123456", # 填入 authKey
account=123456, # 你的机器人的 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()
接下来你就可以发挥自己的想象做出一些有趣的事情啦~
api参考文档