0%

qq | QQ 机器人

目前,很多想要开发一个 QQ机器人 ,最好的就是申请 QQ 官方的开发平台,但是,需要企业资质。

现在很多第三方都已经被封了,比如

  • go-cqhttp
  • Shamrock

NapCatQQ

这个的原理是,登陆 linuxQQ 客户端,然后通过 NapCatQQ 做一个中间信息传递,把消息传递给你写的信息处理客户端中。

环境 ubuntu

使用的方法是命令行启动。

复制命令行,会下载一个 docker 镜像。

1
2
3
4
root@iZj6c1u8nkwmm3oqxczwozZ:~# docker images -a
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.1panel.dev/mlikiowa/napcat-docker latest cce21218ad8b 33 hours ago 1.36GB
mlikiowa/napcat-docker latest cce21218ad8b 33 hours ago 1.36GB

上面两个镜像哪个都行。

上面的命令执行完毕后,会主动启动一个镜像,类似

1
2
3
root@iZj6c1u8nkwmm3oqxczwozZ:~# docker ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
c1d94098cb9f mlikiowa/napcat-docker:latest "bash entrypoint.sh" 39 minutes ago Up 39 minutes napcat

ps: 我修改了网络桥接模式,所以,这里显示和你有出入。

另外,我现在开始说一些常备的命令。

关闭容器运行

1
docker stop napcat

删除结束的容器

1
docker rm napcat

启动 QQ 或者新的 QQ

1
docker run -d -e ACCOUNT=<QQ号> -e WS_ENABLE=true -e NAPCAT_GID=$(id -g) -e NAPCAT_UID=$(id -u) --network host --name napcat --restart=always mlikiowa/napcat-docker:latest

这里用的网络模式是 host 模式,因为,我想把对接脚本放在宿主机上。

查看 QQ 码

这是扫码登录。

1
docker logs napcat

进行扫码登录。

1
exit

退出容器。

设置

默认对外是 6099 端口,所以,你的服务器也要开启这个端口的访问。

使用 docker exec -it napcat /bin/bash 进入运行的容器中。

/app/napcat/configwebui.json 记录了登录用的 token

访问 http://IP:6099/webui/login.html,输入 token 就进入了配置界面。

每次重新启动 docker ,这个 token 都会变。

红框要设置一下,这里就是接收事件的 url

我把对接脚本放在了物理机上,举一个简单的例子。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# main.py
import requests
from flask import Flask, request

app = Flask(__name__)


@app.route('/', methods=['POST'])
def receive_event():
# 指定群聊 = 1234567
data = request.json
print("Received event:", data)

return "OK", 200


if __name__ == '__main__':
app.run(host='0.0.0.0', port=5007)
请我喝杯咖啡吧~