llOnebot实现QQ机器人

QQ机器人的近乎完美方案

  • 之前捣鼓qqbot结果让我非常失望, 各种功能限制, onebot这玩意就靠谱多了
  • onebot缺点仅仅是平台限定windows

部署

  1. 安装QQNT: 安装包地址

    • 在安装目录下找到resources\app\app_launcher, 到app_launcher目录下创建文件llob.js, 然后写入一句require(String.raw./LiteLoaderQQNT)
    • 在安装目录下找到resources\app\app_launcher\package.json, 将json里面的main对应的值改为”./app_launcher/llob.js”
  2. 下载LiteLoaderQQNT.zip: 下载地址

    • 将解压出来的整个文件夹LiteLoaderQQNT复制到第1步的llob.js相同目录下
    • LiteLoaderQQNT文件夹内创建一个plugins文件夹
  3. 下载LLOneBot.zip: 下载地址

  4. 下载dbghelp_x64.dll: 下载地址

    • 下载完后重命名为dbghelp.dll然后放到和QQ.exe同目录(就是第1步安装的那个QQ)
  5. 此时打开第1步装的QQ, 上号, 在设置里面能看到LLOneBot就说明部署ok了

机器人发消息

  • 上面部署完之后就可以测试下了, 发消息的测试脚本如下:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
import json
import requests

headers = {
'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36',
'Accept': 'application/json, text/plain, */*',
'Upgrade-Insecure-Requests': '1',
'Content-type': 'application/json',
'Sec-Ch-Ua': '"Not_A Brand";v="8", "Chromium";v="120", "Google Chrome";v="120"',
'Sec-Ch-Ua-Mobile': '?0',
'Sec-Ch-Ua-Platform': 'Windows',
}


class OneBotApi(object):
def __init__(self):
self.addr = 'http://127.0.0.1:3000'

def send_text_to_group(self, group_id: int, text: str):
req = {
"group_id": group_id,
"message_type": "private",
"message": [
{
"type": "text",
"data": {
"text": text
}
}
]
}
payload = json.dumps(req)
resp = requests.post('%s/send_group_msg' % self.addr, data=payload, headers=headers)
print(resp.text)

cli = OneBotApi()
your_group_id = 1145144444 # 这里填测试用的QQ群号
cli.send_text_to_group(your_group_id, 'hello')

其他功能

  • 直接看LLOneBot的官方文档即可, 非常全: LLOneBot

参考资料