基于cqhttp的QQ私信及群聊机器人制作(一)

跟随川川大佬: @川川菜鸟 一起制作属于自己的机器人吧!川川的视频教程直通车:python机器人完整制作过程(1)_哔哩哔哩_bilibili

蓝多多的小仓库实践记录博文

1、使用pip安装相应包

1)配置镜像源请参考:

Pycharm配置镜像源(长期有效)_蓝多多的小仓库-CSDN博客

2)在Terminal中输入:

pip install pydantic loguru pygtrie httpx python-dotenv uvicorn fastapi requests selenium aiocqhttp ffmpeg aiohttp nb-cli nonebot2 nonebot-plugin-apscheduler nonebot-adapter-cqhttp -i https://pypi.tuna.tsinghua.edu.cn/simple

3)安装过程实例:这里可以使用如下代码进行测试:

import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot
nonebot.init()

看看是否安装成功,若成功,则如下图右边所示:

基于cqhttp的QQ私信及群聊机器人制作(一)

2、在控制台输入指令nb配置相应工程

1)输入nb,回车

基于cqhttp的QQ私信及群聊机器人制作(一)

2)选择Create a New NoneBot Plugin,回车并填写相应的工程名

 基于cqhttp的QQ私信及群聊机器人制作(一)

3)选择 In a "src" folder,回车

 基于cqhttp的QQ私信及群聊机器人制作(一)

4)选择cqhttp,回车

 基于cqhttp的QQ私信及群聊机器人制作(一)

5)输入y,回车

 基于cqhttp的QQ私信及群聊机器人制作(一)

3、go-cqhttp 文件的下载与安装

1)下载 go-cqhttp release文件
go-cqhttp release文件下载地址https://github.com/Mrs4s/go-cqhttp/releases/

基于cqhttp的QQ私信及群聊机器人制作(一)

如有github无法访问的问题请参考:https://blog.csdn.net/qq_43554335/article/details/121570391

链接:https://pan.baidu.com/s/1JLpVh9nhTqAszjr9GItnKA 
提取码:haed

2)将下载的压缩包解压,放到机器人工程目录下(我的是lddrobot)

基于cqhttp的QQ私信及群聊机器人制作(一)

3)进入go-cqhttp_windows_amd64文件,按住shift + 右键 打开Powershell,窗口输入命令

.\go-cqhttp.exe

基于cqhttp的QQ私信及群聊机器人制作(一)
 选择12345,会生成一个config.yml文件:基于cqhttp的QQ私信及群聊机器人制作(一)

4、修改.env文件

1)修改.env文件的ENVIRONMENT为prod

基于cqhttp的QQ私信及群聊机器人制作(一)

 2)因为8080端口容易被占用,所以修改.env.dev的PORT为8081

基于cqhttp的QQ私信及群聊机器人制作(一)

3)同时,修改.env.prod的PROT为8081

基于cqhttp的QQ私信及群聊机器人制作(一)

5、修改config.yml文件

1)填写QQ群机器人qq及密码

基于cqhttp的QQ私信及群聊机器人制作(一)

2)启用正向ws

基于cqhttp的QQ私信及群聊机器人制作(一)

3)启用反向ws

基于cqhttp的QQ私信及群聊机器人制作(一)

 4)设置反向ws Universal地址(这里端口号是8081哈,图里我没改,请改成8081)

基于cqhttp的QQ私信及群聊机器人制作(一)

6、修改bot.py代码

1)导入模块

import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot  #导入模块

2)添加插件

nonebot.load_plugins("src/plugins") #添加插件

3)注册cq

driver.register_adapter("cqhttp",CQHTTPBot) #注册cq

4)注释掉nonebot.load_from_toml("pyproject.toml")这行

#nonebot.load_from_toml("pyproject.toml") #注释掉

5)完整代码

#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import nonebot
from nonebot.adapters.cqhttp import Bot as CQHTTPBot  #导入模块

# Custom your logger
# 
# from nonebot.log import logger, default_format
# logger.add("error.log",
#            rotation="00:00",
#            diagnose=False,
#            level="ERROR",
#            format=default_format)

# You can pass some keyword args config to init function
nonebot.init()
nonebot.load_plugins("src/plugins") #添加插件
app = nonebot.get_asgi()

driver = nonebot.get_driver()
driver.register_adapter("cqhttp",CQHTTPBot) #注册cq
nonebot.load_builtin_plugins()

# Please DO NOT modify this file unless you know what you are doing!
# As an alternative, you should use command `nb` or modify `pyproject.toml` to load plugins
#nonebot.load_from_toml("pyproject.toml") #注释掉

# Modify some config / config depends on loaded configs
# 
# config = driver.config
# do something...


if __name__ == "__main__":
    nonebot.logger.warning("Always use `nb run` to start the bot instead of manually running!")
    nonebot.run(app="__mp_main__:app")

7、运行并测试

1)运行bot.py

基于cqhttp的QQ私信及群聊机器人制作(一)

2)在Power shell中输入 .\go-cqhttp.exe 运行go-cqhttp.exe(如果你之前填了QQ及密码则会自动登录,如果没填需要扫码登录嗷)效果如图:

基于cqhttp的QQ私信及群聊机器人制作(一) 

基于cqhttp的QQ私信及群聊机器人制作(一)

2)测试结果:(这只是小白机器人制作的起步,后续会有更加复杂的功能加入)

基于cqhttp的QQ私信及群聊机器人制作(一)

上一篇:2020宁波市第三届网络安全大赛 Web Writeup


下一篇:网鼎杯2020 玄武组部分writeup