基于 Mirai QQ机器人 python 开发

环境配置

配置java 环境 java 版本 >= 11
参考文章

下载最新版本的mcl,并配置环境变量

下载最新版本的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()

转载自

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值