分享好友 最新动态首页 最新动态分类 切换频道
5分钟实战QQ机器人教程(保姆级)
2024-12-25 13:06

先看下目录

5分钟实战QQ机器人教程(保姆级)

免责声明:本文所涉及资源均来源互联网,仅供个人分享学习,严谨用于非法用途,否则后果自负,且与本文无关

实战在后面,先来理顺一下QQ机器人这个乱七八糟的东西,简直太乱,各种框架各种项目满天飞,所以诞生了下面的QQ机器人的前世今生。想看实战的直接跳到下面的实战目录

QQ机器人最早可以追溯到Smart QQ,也就是WebQQ,参考:https://zh.wikipedia.org/wiki/Smart_QQ

WebQQ是腾讯于2009年9月15日正式推出的一项服务,该服务可以使用户在不安装QQ软件的情况下使用QQ的部分服务。该功能已于2019年1月1日停止运营[1]。

Web QQ顾名思义也就是网页上运行的QQ,这要做机器人那就太简单了,分析HTTP协议就行了,由此诞生了一些列的Web QQ机器人框架,说白了就是封装的HTTP协议而已

2019年1月1日,Smart QQ正式停止服务。[3]

目前(2021-01-31)在Github上还存在大量SmartQQ的项目,但是大多数都是归档或者失效的。

大概2011年左右,有了一个叫做的酷Q的项目,酷Q最开始也是用的Smart QQ的Web协议,Smart QQ关闭之后开始用安卓手机QQ的协议,具体是酷Q Air(免费)用的是手Q国际版,酷Q Pro(付费)用的是安卓Q,所谓实现安卓手机QQ协议就是把QQ.apk大卸八块,反编译找到关键源代码,比如登录之类,数据传输协议抓包查看,通过这些手段自己实现一个QQ客户端的意思,那么自己实现的客户端就可以进行功能扩展,算是制作QQ机器人的基础。

因为能用反编译+抓包的方式实现自己的QQ客户端,所以QQ机器人框架雨后春笋般涌现,由此诞生了一些优秀的机器人,比如

但是,好景不长,在2020年8月,腾讯突然封杀这些机器人框架

截至2020.8.2凌晨2:00

晨风框架死(腾讯律师函,作者进局子)

酷q框架停运(用户 违规非法行为,网站关闭,框架正常,Air一旦重启不可使用 Pro用到授权完为止)暂时可以使用

契约框架部分问题,服务器被踹(官方公告即将跑路)暂时可以使用

oq机器人停运(消息不明)

qr机器人停运(消息不明)

mypc框架论坛关闭(消息不明)

乾坤框架停运(消息不明)

华景机器人(跑路拜拜)

ono机器人(作者亲自强调跑路拜拜)

mirai框架(群验证消息:已跑路)

nanbot框架论坛上不去(不明)

轻语机器人(消息不明

柠檬机器人(消息不明

暂时已知部分正常框架

QQlight框架

小栗子机器人框架

qqmax lite CoCo (某些手机robot)

目前未知消息机器人软件(不出名

大神机器人(来自百度,目前未知消息

星空机器人(来自百度,目前未知消息

晨风机器人作者被跨省传唤

晨风QQ机器人作者被跨省传唤,腾讯的起诉让群管理人人自危

Mirai 也是一个上面跑路的机器人框架,实现的也是安卓QQ协议,项目地址:https://github.com/mamoe/mirai

mirai 是一个在全平台下运行,提供 QQ Android 协议支持的高效率机器人库

这个项目的名字来源于

京都动画作品《境界的彼方》的栗山未来(Kuriyama mirai)

CRYPTON以初音未来为代表的创作与活动(Magical mirai)

图标以及形象由画师DazeCake绘制

看来这个框架的开发者是老二次元了,现在也只剩下开源的mirai了,虽然之前说说mirai作者也跑路了,但还真没看出来哪里跑了,mirai强调并且切实实行了**“一切开发旨在学习,请勿用于非法用途**”的准则,我估计是这个确保了mirai能安心地继续存在。

一切开发旨在学习,请勿用于非法用途

mirai 是完全免费且开放源代码的软件,仅供学习和娱乐用途使用

mirai 不会通过任何方式强制收取费用,或对使用者提出物质条件

mirai 由整个开源社区维护,并不是属于某个个体的作品,所有贡献者都享有其作品的著作权。

所以只要不是用于非法盈利之类的用途,是不会收到腾讯的律师函的。

上面所说的各种框架都只是机器人的各种实现,每个框架之间接口都不通用,编程语言也不尽相同,想要开发一个自己的机器人,换一套框架所有的代码都要推到重来,所以亟需一个规范统一各个框架,所以OneBot 诞生了,先来看看OneBot 是啥

OneBot 标准

一个聊天机器人应用接口标准

简单

接口简单易懂,可轻松接入。

兼容性

兼容原 CQHTTP 插件,零负担迁移。

兼容原 CQHTTP 插件,这个标准和CQHTTP有啥关系?CQHTTP是酷Q的一个插件,这个插件可以提供HTTP协议的接口供第三方系统调用,这样就和具体语言无关,什么语言都可以调用机器人接口实现自己的逻辑,而且基于CQHTTP 已经实现了很多功能的机器人了,详情见上面优秀机器人框架,为了不让以前所有的优秀代码都要推倒重来,所以OneBot 干脆直接在CQHTTP 的基础之上指定标准,这就是典型的先有实现,后有标准的例子。

在这个标准的基础之上,有了各种编程语言的实现,我们称之为生态,如下

理论上,基于 OneBot 标准开发的任何 SDK、框架和机器人应用,都可以无缝地在下面的不同实现中切换。当然,在一小部分细节上各实现可能有一些不同,这也是本项目希望推动解决的问题。

项目地址平台核心作者备注richardchien/coolq-http-apiCKYUrichardchien可在 Mirai 平台使用 mirai-native 加载Mrs4s/go-cqhttpMiraiGoMrs4syyuueexxiinngg/cqhttp-miraiMiraiyyuueexxiinnggtakayama-lily/onebotOICQtakayamaYiwen-Chan/OneBot-YaYa先驱Kanri

MiraiGo就是GO语言实现的安卓QQ协议,API很原始,相当于一个类库,go-cqhttp是在MiraiGo的基础之上封装的HTTP协议和Websocket协议接口的框架,得益于GO语言先天的优势(资源占用少,运行简单,协程并发高,总之就是性能高,引用项目原话

在关闭数据库的情况下, 加载 25 个好友 128 个群运行 24 小时后内存使用为 10MB 左右. 开启数据库后内存使用将根据消息量增加 10-20MB, 如果系统内存小于 128M 建议关闭数据库使用.

本文选择go-cqhttp作为实战框架

来到了最激动人心的实战环节,先看一下OneBot 标准的接口列表,参考https://github.com/howmanybots/onebot/blob/master/v11/specs/api/public.md

  • send_private_msg 发送私聊消息
  • send_group_msg 发送群消息
  • send_msg 发送消息
  • delete_msg 撤回消息
  • get_msg 获取消息
  • get_forward_msg 获取合并转发消息
  • send_like 发送好友赞
  • set_group_kick 群组踢人
  • set_group_ban 群组单人禁言
  • set_group_anonymous_ban 群组匿名用户禁言
  • set_group_whole_ban 群组全员禁言
  • set_group_admin 群组设置管理员
  • set_group_anonymous 群组匿名
  • set_group_card 设置群名片(群备注
  • set_group_name 设置群名
  • set_group_leave 退出群组
  • set_group_special_title 设置群组专属头衔
  • set_friend_add_request 处理加好友请求
  • set_group_add_request 处理加群请求/邀请
  • get_login_info 获取登录号信息
  • get_stranger_info 获取陌生人信息
  • get_friend_list 获取好友列表
  • get_group_info 获取群信息
  • get_group_list 获取群列表
  • get_group_member_info 获取群成员信息
  • get_group_member_list 获取群成员列表
  • get_group_honor_info 获取群荣誉信息
  • get_cookies 获取 Cookies
  • get_csrf_token 获取 CSRF Token
  • get_credentials 获取 QQ 相关接口凭证
  • get_record 获取语音
  • get_image 获取图片
  • can_send_image 检查是否可以发送图片
  • can_send_record 检查是否可以发送语音
  • get_status 获取运行状态
  • get_version_info 获取版本信息
  • set_restart 重启 OneBot 实现
  • clean_cache 清理缓存

快速浏览一遍然后头脑风暴一下你觉得通过这些接口可以干什么

点歌机器人、天气预报机器人、成绩查询机器人、群管理机器人、群聊天敏感词检测机器人、邮件发送机器人…、可玩性足够高了吧

CentOS 7 64位 + go-cqhttp-v0.9.39

服务器可以是本地虚拟机也可以是VPS,为什么选Linux,因为更适合生产环境

如果需要其他版本的go-cqhttp版本,请访问发布页:https://github.com/Mrs4s/go-cqhttp/releases

 
 

这是一份最全的配置文档,需要修改的字段uin为QQ号,password为QQ密码,其他的按需修改,每个字段都有注释的,要改自己先看看这个字段干嘛用的

web_ui,不知道干嘛的先关掉,HTTP端口为5700,WS端口为6700(此例用HTTP不用WS,所以先把WS的关掉,这些都是默认的不用改,还有个上报端口后面再说,此处先不做解释

 

上面文件内容保存到~/QQBOT/config.json文件中

 
 

恭喜你来到了验证环节,此处可以分为常用IP登录和不常用IP登录,前者可以选择手机号接受验证码验证或者扫码验证,后者就比较麻烦了,需要进行滑块验证

 

将url拷贝到浏览器选择验证方式验证即可,比较简单

 

滑块验证就比较烦人了,建议参考作者给出的方案:https://github.com/Mrs4s/go-cqhttp/blob/master/docs/slider.md

此处我使用的是方案B: 使用专用工具,这个比较简单,方案A是抓包

需要注意的是使用专用工具手动完成滑块验证需要快速完成,否则会失败,每次验证的时间只有30s,有时候滑块点不动,需要重来,笔者反复了三次才完成滑块验证。

完成滑块验证别高兴太早,还要再次进行上面的扫码或验证码验证,相当于一个二次验证。

最后再次启动,如果出现类似下面输出,则说明登录成功

 
 

此时检测一下服务器5700端口是否在起监听

 

如果不通,则可能是要开防火墙端口,下面两者选其一

 

如果不需要在外网暴露接口则不用开防火墙端口

API参考https://github.com/howmanybots/onebot/blob/master/v11/specs/api/public.md

建议直接在服务器本地用curl命令调用,下面随便演示几个

user_id填写对方QQ号,message填写消息内容

 

返回的json如下,retcode为0表示成功,赶快看一下对方收到消息没!如果收到了说明搭建成功

 
 
 

返回内容如下

 

其他的接口请参考上面的API文档,笔者试过了大多数读数据接口(get打头)的速度很快,一些写数据接口(set打头)会失败,比如点赞、退出群啥的,其他感兴趣的可自行测试

什么是事件?比如一个好友给你发消息,这就是一个消息事件,上面实现了给别人发消息,那么别人给自己发消息自己怎么知道?答案就是事件上报,机器人会将收到的消息异步发送到指定的端口,由业务逻辑系统处理

比如好友给我发一个听《一千年以后》,机器人将消息事件上报给指定端口,该端口在监听的系统去网易云搜索《一千年以后》的资源,然后调用上面的发消息API发送给好友,这样才能形成一个业务闭环。

一个事件必须的字段比如事件发生时间、事件类型、事件内容等等,可以参考OneBot 标准:https://github.com/howmanybots/onebot/blob/master/v11/specs/event/README.md

有哪些事件呢?下面列举了所有的事件类型

  • 消息事件
  • 通知事件
  • 请求事件
  • 元事件

来看一下我们最关心的消息事件

  • 私聊消息
  • 群消息

和通知事件

  • 群文件上传
  • 群管理员变动
  • 群成员减少
  • 群成员增加
  • 群禁言
  • 好友添加
  • 群消息撤回
  • 好友消息撤回
  • 群内戳一戳
  • 群红包运气王
  • 群成员荣誉变更

群成员增加可以干什么?自己细想吧,这里不过多透露了

此处简单起见,用nc监听一个端口接收来自机器人的事件上报,在9000端口起一个监听

 
 

上面机器人的配置文件config.json中,主要配置post_urls,配置成上面我们配置的9000端口:“127.0.0.1:9000”:secret

 

重新启动机器人,会发现nc监听的9000端口有如下输出,说明上报配置生效

 
 

Q: 为什么挂一段时间后就会出现 消息发送失败,账号可能被风控? A: 如果你刚开始使用 go-cqhttp 建议挂机3-7天,即可解除风控

最新文章
揭秘淘宝特价版运营秘籍:如何玩转性价比之王?
在电商江湖中,淘宝特价版凭借其独特的定位和海量优惠吸引了无数商家目光。想要在这个竞争激烈的平台上脱颖而出,你需要掌握哪些运营策略呢?这篇文章将为你揭示那些鲜为人知的运营技巧,助你在特价版市场大放异彩!了解你的顾客是第一步。
【I9210中国建设银行下载】三星I9210中国建设银行7.0.0免费下载
建设银行专为手机银行客户打造的移动金融服务平台,在具备转账汇款、缴费支付、投资理财、管理、信用卡、快贷、手机充值、网点地图等常用功能的同时,还向广大客户影票在线、机票、存贷款计算器等便捷生活服务。炫酷、流畅的界面设计,新颖
颠覆你对免费白嫖的认知,4个封神的电脑工具,干货奉上
总有小伙伴在问,小编的资源神器都是哪里找到的,分享的神器已经不能满足了。小编秉着“授人以鱼不如授人以渔”的原则,本期就拿出小编珍藏多年的资源合集,给各位享用!(最后一款粉丝点名需求)花猫导航一个资源丰富的网站,收录了包括但
拼多多无货源怎么找货源?3个靠谱渠道月入过万!
郑重声明 本站:三贰项目库,网址:[https://www.222xm.com]所分享内容可能来源于互联网公开渠道获取。如发现有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 65795539@qq.com举报删除。 三贰项目库仅收集整理各大网赚平台的付费资源,提供资
喵上漫画!最新复活版,继续免费看全网漫画!!安卓+苹果双端,三款免费看漫画神器
最近喵上漫画关闭后,很多其他的APP也陆陆续续的用不了;经历漫长的等待,目前最新版也是重新复活,改为喵呜漫画;对于喵上漫画,大家最喜欢的一点就是更新快,那么你肯定不能错过喵呜漫画这款APP;喵呜漫画APP内的漫画资源多种多样,基本
网络营销专业就业前景怎么样 适合什么工作
网络营销专业就业前景还是比较好的。随着大数据的发展。网络营销也成了很多人青睐的专业。不过,要想做好网络营销需要自己有一定的实力。首先你所营销的产品一定要过硬。公司一定要有资质。网络营销是一种成本低、效果好的新型营销方式,因
金山办公WPS AI引领智能办公,荣登WISE2024年度「焦点」产品榜
技术发展日新月异,科技的力量深刻改变着社会及个人生活,而好的产品则是科技的载体,让消费者真正获益。近日,36氪发布WISE2024年度「焦点」产品榜,一系列创新、实用、高品质的科技产品在经过严格测评后脱颖而出。作为智能办公赛道的佼佼
颠覆传统!用AI一键生成超逼真美女写真,超简单教程来啦!
限时免费,点击体验最近超火的AI生图神器,坐拥3000美女的大男主就是你! https://ai.sohu.com/pc/generate/textToImg?_trans_=030001_yljdaimn 在这个科技飞速发展的时代,人工智能已经渗透到生活的方方面面,尤其是在艺术创作领域。想象
最好的手机管家排行榜 手机管家排行榜前十名2022
手机管家app哪个好?手机管家就是一种用来进行手机文件以及信息安全管理的软件。随着科技的发展,网络安全成为了一大隐患,各种各样的不良信息骚扰着我们。手机管家就是这方面的清道夫,它具有极强的安全防护功能,让你的手机安全上网,摆脱
以“重”为壁垒获高估值,神马专车成网约车市场实力悍将
近年来有关汽车生态颠覆性变革的话题被行业热议。随着互联网技术、新能源技术的迅猛发展以及国家可持续发展战略的实施,移动出行和新能源汽车成为未来汽车产业新的利润池。众多汽车生产商、网约车服务商、有些流量平台也抓紧布局,力图抢占
相关文章
推荐文章
发表评论
0评