环境配置
配置java 环境 java 版本 >= 11
参考文章
下载最新版本的mcl,并配置环境变量
登录QQ账号
在项目目录下打开cmd窗口,输入
mcl
当提示 mirai-console started successfully 时表示启动成功
接着在光标处输入login 账号 密码
尝试登录QQ账号
但此时会提示登录失败,原因是需要做滑块验证
解决方案是下载 mirai-login-solver-selenium 处理滑块验证辅助登录 (需要有Chrome 浏览器)
输入下面指令
mcl --update-package net.mamoe:mirai-login-solver-selenium --channel nightly --type plugin
关闭原来的进程,重新打开cmd窗口,输入 mcl 将会自行下载此插件
重新登录,可能会出现浏览器窗口,辅助完成登录即可
mirai-api-http 转发消息
这时,已经可以完成登录但是还没有处理消息的程序,这里我们使用python做处理,但python不是mirai直接支持的语言,需要一个插件来转发消息
重新打开一个cmd 窗口 输入
mcl --update-package net.mamoe:mirai-api-http --channel stable --type plugin
重启程序后即可完成 mirai-api-http 插件的安装
安装完成后修改此文件中相应的配置
可以参考修改
以上设置使mirai 登录QQ后可以转发消息到 0.0.0.0(本机) 的 8080 端口
python后端接收消息并响应
python 安装 graia-application-mirai 模块(可以选择新建虚拟环境)
pip install graia-application-mirai
运行mcl 登录 QQ后 新建py文件
运行一下参考代码后QQ机器人就会私聊回复hello world了
graia-application-mirai 官方文档
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=nideqqhao , # 你的机器人的 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()