QQ 机器人的起起落落

本文最后更新于 将近 4 年前,文中所描述的信息可能已发生改变。

此为本周给部门的供稿,想不到要写什么,正好这周忙着搞 nodice,就顺手写了这玩意儿。

前言

在当今时代,我们已经离不开腾讯旗下的即时聊天软件了。QQ 还是微信,你总会有其中一个,当然更大概率是两个都有。但是我们必须知道,QQ 和微信都是私有软件,这就意味着使用它们的通讯无法得到真正的安全保障。

何谓私有软件?简要地说,不具备自由软件四大自由特性(自由复制、学习、改进和再发布)的软件就是私有软件,不允许通过首由协作和共享的方式来开发和传播、无视“邻居间相互帮助”的需要的软件就是私有软件。

由于它们的私有软件性质,腾讯垄断了通讯服务器、通信协议、通信客户端接入权这通讯软件的三大命脉,他们可以对用户为所欲为(具体表现就是你在群里讨论点政治相关的问题就很容易被封号,每次更新 QQ 都会多出一些你完全不想要的新功能,你在群里聊点东西一小时后就会被推送相关的广告给你等…)

QQ 机器人,我说的当然不是现在群里那只会每天中午准时@全体成员的智障一般的 Q 群小管家或者是那个功能不断增加的烦人的 QQ 小冰,而是一种可以被极客们自由编写逻辑,极具生命力的机器人生态。

WebQQ 时代

在前面我们提到过,腾讯垄断了 QQ 的通信客户端接入权,那么 QQ 机器人这种东西又是怎么突破这些东西,重新被掌握在程序员们的手里呢?其实很简单,虽然腾讯将他们的通讯协议封装在 QQ 里,作为一个黑箱让你去使用,而不能直接解析。但他们还有一个 WebQQ,也就是网页端的 QQ。WebQQ 协议的封装程度并没有 QQ 客户端那么高,很容易就能被破解使用。

于是,第一次的 QQ 机器人繁荣时代来临了。通过 WebQQ 协议,可以很容易实现 QQ 的第三方客户端,基本上 QQ 能做的事情这种第三方客户端都能做,实现个机器人更是不在话下。

SmartQQ 时代

在 2013 年底,腾讯推出了 SmartQQ,也就是 WebQQ 的第二代。SmartQQ 并没有账号登陆,而是通过手机 QQ 扫描二维码来登陆。这并没有难住开发者们,“既然你用二维码扫描登陆,那我们只要把这个二维码出来扫描不就行了?”,SmartQQ 时代,QQ 机器人甚至迎来了第二波的繁荣。

qqbot是这个时代的一个代表。

百花齐放

2019 年,WebQQ 停运。以此为基础的诸多 qq 机器人就此暴毙,纷纷转向其他平台。剩下的机器人基本上主要是基于 AndroidQQ 协议或者 PadQQ 协议运行,其中以酷 Q 为代表。酷 Q 的 SDK 众多,而易语言的 SDK 使得在这个平台上编写插件变得即为容易,社区也就此繁荣一时,我也是在这一阶段得知了 QQ 机器人这一事物。

最黑暗的一天

愿我们在更美好的平行世界相遇——酷 Q 官网

shell
2020年7月22日,晨风机器人作者被传唤。
2020年8月2日,酷Q官网停运。
其他大大小小的机器人也闻风而动,纷纷删库跑路。
QQ机器人在短时间内一蹶不振。

有人传言说腾讯想要推出自己的机器人服务,所以逼死了这些第三方的机器人们;还有人说是因为第三方机器人平台被黑色产业用于发送广告(例如我们学校各种群里都出现过的快毕业的 PS 学姐系列…),但至今还没有一个确定的说法。

重生

Mirai 归来,基于原 CQHTTP 的 Onebot 标准建立,众多开发者基于 Mirai 和 Onebot 写就了兼容不同语言的 SDK,但我不知道这一波繁荣还能持续多久,也许在某一天腾讯就会再度出手将这重燃的火焰熄灭。 于今日写下此文,只为缅怀那些前仆后继的机器人开发者们。

其他

如果有同学对于 QQ 机器人开发有兴趣的话,可以去 OneBot 标准Mirai 的 Github 上看一看。

如果只是想要有一个自己的机器人的话,也可以去看一看,有的机器人框架可以说是零基础入门了,值得尝试。

其实本期闲聊本来是想讲苹果 M1 芯片的,半路鸽了换成了这个。

Java、Python 作业整合
TRPGrepo | 中文(无限流)TRPG 资料库