使用go-cqhttp搭建本地qq机器人 并实现发送信息案例(使用python)语言实现

目录

1.go-cqhttp简介

2.案例介绍

3.下载go-cqhttp

4.配置安装

①:下载之后我们可以将执行程序放在一个新建的文件夹中,然后双击执行该程序 直接点击确定执行

 ②:然后双击执行该程序,会看到让我们选择一种通信方式,我们直接输入0 选择HTTP通信 ,然后回车

 ③:然后他会生成一个config.yml的配置文件,我们使用记事本打开,需要进行一些简单的配置

④:重新运行go-cqhttp.bat程序

5.利用python程序编写基本的小案例

①:获取qq机器人的信息(也就是你当时输入的那个账号的信息)

②:实现发送信息的功能


1.go-cqhttp简介

go-cqhttp是一个基于Go语言开发的,运行在服务器上的机器人框架,它与QQ客户端通过插件,直接进行通信,可以实现对QQ群及私聊的监控、消息发送和自动回复等功能。go-cqhttp是国内较为流行的QQ机器人框架之一,可以快速搭建一个高度自定义的机器人应用。

2.案例介绍

本案例是使用go-cqhttp框架搭建的本地qq聊天机器人,演示其中的一个案例,其余的案例其实都类似,只是调用不同的接口。

3.下载go-cqhttp

我们直接按照官网的指引去github下载上下载:Releases · Mrs4s/go-cqhttp · GitHub

然后找到我们想下载的版本

点击Assets下载对应的文件,因为我的是 x64 windows的电脑 所以我们需要下载的是这个文件:

记住一定得是:amd64.exe 不是arm64,不要选错操作系统了

鉴于可能会出现网络不佳的情况,导致访问github非常的慢,这里我提供了一个下载地址:https://pan.baidu.com/s/1suilFgCHPr_t1D-rMbGphQ?pwd=1111 
提取码:1111

4.配置安装

①:下载之后我们可以将执行程序放在一个新建的文件夹中,然后双击执行该程序 直接点击确定执行

然后他会生成一个go-cqhttp.bat的执行程序

 ②:然后双击执行该程序,会看到让我们选择一种通信方式,我们直接输入0 选择HTTP通信 ,然后回车

 ③:然后他会生成一个config.yml的配置文件,我们使用记事本打开,需要进行一些简单的配置

 

 我们需要填写对应的账号和密码,并将心跳关闭,然后拉到文件的末尾,将划线的二条代码的注释删掉

 其中的url地址的配置:

http://127.0.0.1:5700/是go-cqhttp服务器的http API端口地址,在go-cqhttp服务器启动之后,我们可以通过向这个地址发送HTTP请求来与go-cqhttp服务器进行交互,例如发送消息等操作。

http://127.0.0.1:5701/是go-cqhttp服务器的web管理界面地址,在这个界面上我们可以方便地查看go-cqhttp服务器的日志、配置参数、查看插件信息等等。这个地址不是运行go-cqhttp机器人必须的,但是在有些情况下,如果你需要对go-cqhttp机器人进行一些配置调整或者查看状态信息,可以通过这个地址进行操作。

修改完之后记得保存,详细配置可以参考官方文档:配置 | go-cqhttp 帮助中心

④:重新运行go-cqhttp.bat程序

 看到如下的程序,证明我们的配置已经成功了,接下来就是编码环节,但是这个过程中,终端程序不能关闭,得一直运行着

5.利用python程序编写基本的小案例

我这里使用的是pycharm,使用其他的代码编辑器也可以,首先要确保我们已经下载了requests这个包,如果没有下载的,可以使用下面的命令在终端中安装一下

pip install requests

接下来就是代码编写,其实我们的代码主要是运用官方的提供的API,我们只需要对发送请求回来的数据进行处理即可,官方API文档:API | go-cqhttp 帮助中心

我们这里使用二个小案例演示一下

①:获取qq机器人的信息(也就是你当时输入的那个账号的信息)

import requests

# 设置请求头
headers = {
    'Content-Type': 'application/json'
}

# 构造发送的消息
data = {
    "action": "get_login_info"
}

# 发送 HTTP 请求
response = requests.post('http://localhost:5700/get_login_info', headers=headers, json=data)

print(response.json())
# 解析返回的数据
if response.json().get("status") == "ok":
    print("QQ 账号:", response.json().get('data').get('user_id'))
    print("QQ 昵称:", response.json().get('data').get('nickname'))
else:
    print("获取登录信息失败")

然后我们运行此程序,可以看到终端打印了该机器人的一些基本信息

至于请求发送的一些相关参数已经请求头都可以通过官方文档查看

②:实现发送信息的功能

import requests

# 设置请求头
headers = {
    'Content-Type': 'application/json'
}

# 构造发送的消息
data = {
    "message_type": "private",
    "user_id": 11223345,  # 替换成你要发送消息的 QQ 账号
    "message": "qc_bot测试信息"  # 替换成要发送的文本内容
}

# 发送 HTTP 请求
response = requests.post('http://localhost:5700/send_msg', headers=headers, json=data)

# 解析返回的数据
if response.json().get("status") == "ok":
    print("消息发送成功")
else:
    print("消息发送失败")

运行之后对方就会收到你的信息了,包括在终端中也会看到相关的信息

 至于其他的一些操作基本上都是可以通过查询官方文档获取

  • 27
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
### 回答1: 要用 Python 写一个基于 go-cqhttp 的 QQ 机器人,你可以使用第三方库,如 CoolQ HTTP API 插件的 Python SDK,它封装了 go-cqhttp 提供的 HTTP API,使用起来更方便。 以下是一个简单的示例: ``` from cqhttp import CQHttp bot = CQHttp(api_root='http://127.0.0.1:5700/') @bot.on_message() def handle_msg(context): # 实现你的机器人逻辑 return {'reply': '你好,我是机器人!'} bot.run() ``` 这段代码中,我们定义了一个 handle_msg 函数来处理消息,并返回一个回复。运行这段代码后,你的机器人就会自动对收到的消息进行回复。 当然,你还可以根据需要添加更多的处理逻辑,例如:处理私聊消息,实现智能问答等。 ### 回答2: 基于go-cqhttp使用Python编写QQ机器人可以通过与go-cqhttp插件的HTTP API进行交互来实现。 首先,将Python的requests库导入项目中,以便发送HTTP请求。 接下来,我们需要处理机器人收到的消息。通过模拟用户发送消息时,go-cqhttp发送的HTTP POST请求,我们可以使用Python的Flask框架来接收和处理这些消息。 在接收消息的路由上,我们可以使用Flask的`@app.route('/message')`来定义一个路由函数。在这个函数中,我们可以提取出消息中的关键信息,例如发送者QQ号码、发送的消息内容等。 接下来,我们可以使用条件语句对接收到的消息进行分类处理。例如,我们可以根据关键字回复不同的内容,或者调用外部API来进行一些其他操作。可以根据情况,编写不同的函数作为消息处理器。 在处理完消息后,我们需要将最终的回复发送给发送者。我们可以通过构造一个回复消息的字典,并将其转化为JSON格式,然后使用requests库发送POST请求到你自己的go-cqhttp插件上的HTTP API。 最后,我们可以利用go-cqhttp插件的事件上报功能,来处理一些其他的事件。例如好友申请、群聊消息等。 总结起来,基于go-cqhttp,用Python写一个QQ机器人可以通过与go-cqhttp插件的HTTP API进行交互,处理接收的消息和事件,并根据需要编写不同的函数作为消息处理器、事件处理器。最后,将回复消息发送给发送者。通过这些步骤,我们可以实现一个简单的QQ机器人。 ### 回答3: 基于go-cqhttp,我们可以使用Python来编写一个QQ机器人。首先,我们需要使用Python的 requests 库与go-cqhttp建立通信。 首先,我们需要在go-cqhttp的配置文件中开启HTTP、WS(WebSocket)接口。然后,我们可以使用python的requests库向go-cqhttp发送HTTP请求来完成一些操作,例如发送私聊消息: ```python import requests url = "http://127.0.0.1:5700/send_private_msg" data = { "user_id": 你的QQ号, "message": "Hello, World!" } response = requests.post(url, json=data) ``` 这将向你的QQ号发送私聊消息"Hello, World!"。 然后,我们可以使用Python来监听go-cqhttp发送给QQ机器人的消息,这里我们可以使用WebSocket连接进行实时通信。我们可以使用Python的websocket库来实现WebSocket通信: ```python import websocket def on_message(ws, message): print(message) def on_error(ws, error): print(error) def on_close(ws): print("连接已关闭") def on_open(ws): print("连接已打开") # 创建WebSocket连接对象 ws = websocket.WebSocketApp("ws://127.0.0.1:6700") # 绑定回调函数 ws.on_message = on_message ws.on_error = on_error ws.on_close = on_close ws.on_open = on_open # 开始监听消息 ws.run_forever() ``` 这将打开一个WebSocket连接,接收go-cqhttp发送给QQ机器人的消息,并将其打印出来。 当然,以上只是一个简单的例子,对于一个完整的QQ机器人,我们还可以做很多其他的操作,例如发送群聊消息、处理命令、响应事件等等。这些操作都可以通过向go-cqhttp发送HTTP请求来实现。 综上所述,使用Python编写一个基于go-cqhttpQQ机器人是十分可行的,我们可以利用Python提供的各种库与go-cqhttp进行通信,实现丰富的功能。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Lee哈

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值