机器人真的很有意思呢,可是由于腾讯一直以来对机器人社区打击,不断更新加密算法,mirai用起来越来越麻烦了
所以切换到 lagrange (拉格朗日? 这个qq机器人框架
Onebot是什么?
统一的聊天机器人应用接口标准
简洁、通用、可扩展,只需使用一套标准即可为各种平台编写聊天机器人
OneBot 是一个聊天机器人应用接口标准,旨在统一不同聊天平台上的机器人应用开发接口,使开发者只需编写一次业务逻辑代码即可应用到多种机器人平台。
对于QQ的Onebot,我们使用lagrange作为与腾讯交互的消息平台
下载
从github 下载nightly release
Release Nightly Release · LagrangeDev/Lagrange.Core (github.com)
wget https://github.com/LagrangeDev/Lagrange.Core/releases/download/nightly/Lagrange.OneBot_linux-x64_8.0.zip
unzip Lagrange.OneBot_linux-x64_8.0.zip
cd publish
chmod +x Lagrange.OneBot
./Lagrange.OneBot
运行后提示
No exist config file, create it now...
Please Edit the appsettings.json to set configs and press any key to continue
首次运行的时候生成了 appsettings.json 文件
这个时候按Ctrl+C 退出
配置
我们需要编辑lagrange的配置文件
nano appsettings.json
{
"Logging": {
"LogLevel": {
"Default": "Information",
"Microsoft": "Warning",
"Microsoft.Hosting.Lifetime": "Information"
}
},
"SignServerUrl": "https://sign.lagrangecore.org/api/sign",
"MusicSignServerUrl": "",
"Account": {
"Uin": 0,
"Password": "",
"Protocol": "Linux",
"AutoReconnect": true,
"GetOptimumServer": true
},
"Message": {
"IgnoreSelf": true,
"StringPost": false
},
"QrCode": {
"ConsoleCompatibilityMode": false
},
"Implementations": [
{
"Type": "ReverseWebSocket",
"Host": "127.0.0.1",
"Port": 8080,
"Suffix": "/onebot/v11/ws",
"ReconnectInterval": 5000,
"HeartBeatInterval": 5000,
"AccessToken": ""
}
]
}
其中重要的信息是
Implementations,消息平台的通信方式,默认是ReverseWebSocket反向web socket,注意这里需要和你的程序/脚本里面的用一样的协议
Port端口,和你的程序/脚本交流的端口
Account
Uin: QQ的账号
Password QQ密码
SignServerUrl:签名服务器的API,非常重要,用于处理腾讯签名算法
哪里获取?lagrange的tg服务器上面)
登录
现在我们处理QQ登录的问题
lagrange使用扫码登录,登录的时候使用linux客户端的登录协议
运行后lagrange会在终端打印一个二维码,拿手机qq扫一下就好了
注意手机登录的qq得是和lagrange上配置的是一样的
./Lagrange.OneBot
需要后台运行的话,就用screen吧
screen允许你在一个ssh里面有多个会话
screen ./Lagrange.OneBot
# 按 ctrl+a,再按d,挂起会话
# screen -r 可以恢复会话