
Mirai是一款最新的开源QQ机器人框架,用卡特琳语言编写,所以后续如果有需要,我会出Java版教程,如果想要了解更多语言开发,请移步Mirai官方文档,除了卡特琳和Java,其他语言均需要依赖Mirai Http 和Mirai Console开发。
Python使用Mirai本教程使用的是Graia这个Python语言写的实现库,还有很多python实现库,由于这个项目文档最为详细,所以本教程选用了这个项目,依赖需求如下,python需要3.8以上,python安装,再自己用pip安装依赖即可,网差可以换pip源
Mirai API HTTP 安装按照Girai官方环境搭建就行,但过程中还是遇见了一些问题
MCL的安装可以手动安装,但笔者自己安装的时候总是出现版本依赖问题,于是选用了mcl-installer一键安装的方式。首先进入网站,下载对应的脚本,笔者是macos 64,所以选用如下
下载,然后chmod +x mcl-installer-1.0.6-macos-amd64,添加执行权限,然后运行脚本就会自动下载,一直回车就行,如果自己有特殊需求,也可以自己选择依赖版本,下载完后目录如下
然后运行 ./mcl,下载依赖,会自动下载如下的依赖,笔者已经下载过了,所以运行时候就不用下载了
这里下载mirai-api-http时,官方默认下载的是2.5.0版本,但安装2.5.0版本运行时可能会报错,所以我改成了2.4.0,记得要把lock改为true,随便用编辑器打开config.json,修改mirai-api-http的版本
至此环境已经搭建完成,运行./mcl,运行help命令,可以获得可以运行的命令。
这里我们使用login 命令,login qqnumber passwd,登录一个QQ机器人
第一次登录会遇见滑块验证
复制链接到浏览器打开,浏览器记得打开f12,也就是检查功能,选择Network
进入链接,清空请求,方便查找token
选择这个token的请求, 复制ticket到框中
回车,还会有一个手机验证,复制链接,发送给手机QQ,在手机QQ中验证,验证完即可登录成功,关闭d窗
打开PyCharm,创建一个新的项目,新建一个python文件,复制下面的代码,account和key填写你自己的
import asyncio
from graia.broadcast import Broadcast
from graia.ariadne.app import Ariadne
from graia.ariadne.message.chain import MessageChain
from graia.ariadne.message.element import Plain
from graia.ariadne.model import Friend, MiraiSession
loop = asyncio.new_event_loop()
broadcast = Broadcast(loop=loop)
app = Ariadne(
broadcast=broadcast,
connect_info=MiraiSession(
host="http://localhost:8080", # 填入 HTTP API 服务运行的地址
verify_key="ServiceVerifyKey", # 填入 verifyKey
account=123456789, # 你的机器人的 qq 号
)
)
@broadcast.receiver("FriendMessage")
async def friend_message_listener(app: Ariadne, friend: Friend):
await app.sendMessage(friend, MessageChain.create([Plain("Hello, World!")]))
# 实际上 MessageChain.create(...) 有没有 "[]" 都没关系
loop.run_until_complete(app.lifecycle())
在运行之前需要先配置一下,在config目录下,创建net.mamoe.mirai-api-http目录,名字不能变,
再创建setting.yml文件
复制配置文件进去,key自己设置,再Python链接的时候需要用到的key就是这个(为啥CSDN不支持yml语法)
# file: "MCL/config/net.mamoe.mirai-api-http/setting.yml"
## 配置文件中的值,全为默认值
## 启用的 adapter, 内置有 http, ws, reverse-ws, webhook
adapters:
- http
- ws
## 是否开启认证流程, 若为 true 则建立连接时需要验证 verifyKey
enableVerify: true
verifyKey: ServiceVerifyKey
## 开启一些调试信息
debug: false
## 是否开启单 session 模式, 不建议开启
singleMode: false
## 历史消息的缓存大小
## 同时,也是 http adapter 的消息队列容量
cacheSize: 4096
## adapter 的单独配置,键名与 adapters 项配置相同
adapterSettings:
## 详情看 http adapter 使用说明 配置
http:
host: localhost
port: 8080
cors: ["*"]
## 详情看 websocket adapter 使用说明 配置
ws:
host: localhost
port: 8080
reservedSyncId: -1
# 建议确保为负数,否则可能出 bug
保存,重启mcl,等待QQ登录成功后,运行python文件,如下则运行成功
然后随便用一个QQ号,给机器人发个消息,就会得到Hello World的回复
本次的QQ机器人HelloWorld教程就到这里啦,后面会更新进一步应用,可私信催更交流,如果觉得本教程还可以,请三连支持一下啦!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)