栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

QQ机器人制作教程,超详细!

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

QQ机器人制作教程,超详细!

前期准备1、机器人框架的下载和配置2、python的配置和安装 具体实现1、发送信息2、获取群成员列表3、接收上报的事件4、实现简单的自动回复 第二、三篇文章实现更多功能完整项目下载地址

完整项目包括框架、代码和详细使用说明可以去链接下载 下载完只需要按照使用说明修改几处地方即可搭建成功
QQ机器人基础版 文章1-2所有功能
QQ机器人多功能版 文章1-3所有功能
最新功能请看第二篇文章 搭建一个QQ机器人叫女朋友起床
最近搭建的语音对话机器人体验地址:智能语音对话机器人

前期准备 1、机器人框架的下载和配置

首先需要一个qq机器人框架 我使用的是基于mirai 以及 MiraiGo 开发的go-cqhttp 里面有开发文档 。

框架下载地址
Windows下32位文件为 go-cqhttp-v*-windows-386.zip
Windows下64位文件为 go-cqhttp-v*-windows-amd64.zip
Windows下arm用(如使用高通CPU的笔记本)文件为 go-cqhttp-v*-windows-arm.zip

选择合适的压缩包下载 然后解压。

双击exe文件 出现如下窗口

输入1后回车 然后关闭 此时已经在原来的文件目录下生成了配置文件config.yml。
双击config.yml 输入QQ号和密码 建议使用无登录保护的qq 否则可能出现滑块验证等问题 。

再转到最后两行 把前面的#去掉使其生效。 很重要 很重要

配置完后直接双击exe文件。等待一段时间出现如下窗口

这两个端口都应该出现 很重要


补充 窗口可能会一直出现如下警告 这个不需要管 是正常现象

窗口会一直显示接收到信息 不要关闭。

2、python的配置和安装

要实现自动回复功能的机器人需要借助一种语言 我选择的是python。
所以需要电脑配置好python环境和下载集成开发环境pycharm。可以直接上网找相关的安装和配置教程 这里就不展开说了。
当然在实现所有功能之前需要安装一些第三方库 这个不知道的也可以百度。

具体实现 1、发送信息

这包括发送私聊信息和发送群聊信息。下面的函数已经写好了 直接调用函数传入参数就行了。

import socket
def send_msg(resp_dict):
 client socket.socket(socket.AF_INET, socket.SOCK_STREAM)
 ip 127.0.0.1 
 client.connect((ip, 5700))
 msg_type resp_dict[ msg_type ] # 回复类型 群聊/私聊 
 number resp_dict[ number ] # 回复账号 群号/好友号 
 msg resp_dict[ msg ] # 要回复的消息
 # 将字符中的特殊字符进行url编码
 msg msg.replace( , %20 )
 msg msg.replace( n , %0a )
 if msg_type group :
 payload GET /send_group_msg?group_id str(
 number) message msg HTTP/1.1rnHost: ip :5700rnConnection: closernrn 
 elif msg_type private :
 payload GET /send_private_msg?user_id str(
 number) message msg HTTP/1.1rnHost: ip :5700rnConnection: closernrn 
 print( 发送 payload)
 client.send(payload.encode( utf-8 ))
 client.close()
 return 0

1 比如发送私聊信息 QQ用接收者的

resp_dict { msg_type : private , number :QQ号, msg : 你好 }
send_msg(resp_dict)


2 发送群聊信息 群号自己用一个

send_msg({ msg_type : group , number : QQ群号, msg : 大家好 })

3 当然不止发送文本信息 还可以发表情、图片、音乐等。还可以艾特某人。
例如 发表情

send_msg({ msg_type : group , number : QQ群号, msg : [CQ:shake] })

发窗口抖动

send_msg({ msg_type : group , number : QQ群号, msg : [CQ:shake] })

还有很多CQcode可以去官方文档查看 http://docs.go-cqhttp.org/cqcode/

2、获取群成员列表
import requests
def get_group(id):
 response requests.post( http://127.0.0.1:5700/get_group_member_list?group_id str(id)).json()
 for i in response[ data ]:
 if(i[ card ]! ):
 print(i[ card ] str(i[ user_id ]))
 else:
 print(i[ nickname ] str(i[ user_id ]))

直接调用即可 群号随便用一个

get_group(QQ群号)

会打印出所有群成员的群昵称 未编辑群昵称的打印QQ昵称 和QQ号。

3、接收上报的事件

下面这个代码命名为receive.py 之后方便调用 不要运行这个代码 否则端口会冲突 。这个返回的是事件的上报信息 包括接收到的信息、加好友请求等等。

import socket
import json
ListenSocket socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ListenSocket.bind(( 127.0.0.1 , 5701))
ListenSocket.listen(100)
HttpResponseHeader HTTP/1.1 200 OK
Content-Type: text/html
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/267308.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号