从零开始在家自己动手造一个QQ机器人

简介: 无论是功能上还是受众上,我个人都是更加偏向QQ这个平台的,相较于其他社交软件,它的功能更加齐全用户更加活跃。比方说同好之间的聊天群、亦或者是游戏玩家交流群,在这种具有明确主题的群聊中往往需要这么一个“小帮手”来协助群友或管理完成某些操作。而腾讯官方自带的群聊机器人,往往又不能提供很好的使用体验,所以基于各种平台的QQ对话机器人应运而生。我希望理解它是如何运行的,如何做到各种各样的行为,或者我们往深一点去想,作为一个毫无开发经验的小白能否自己搭建一个属于自己的QQ机器人?借住这次难得的机会,一起来试试吧。

认识我

我是一名大二学生,专业是数字媒体技术,我非常乐于去分享身上发生的一些事情,有好的可能也有坏的,和熟络的朋友在一起的话我会非常健谈话痨。在一次和朋友的聊天中,我得知我朋友竟然是一名Minecraft多人服务器的服主!我非常兴奋,但是没兴奋多久,我很羡慕他能自己动手搭一个属于自己可供一起游玩的服务器,常识告诉我这搭建服务器的消耗或许需要花不少钱——而我只是一个大学生,手头资金有限根本没有机会去接触这些(毕竟与我专业内容无关)。

机缘

就在此时我了解到,阿里云推出了飞天加速计划,高校学生在家时间就能实践项目,这是一个难得的机会——意味着你可以几乎没有试错成本地在一台云服务器上学你想学的、做你想做的。

基于go-cqhttp开源项目搭建一个QQ机器人

开源地址稍后会放在此段落的末尾
选择一个适配实例操作系统的包体进行下载,由于我此前未接触过Linux操作系统,所以本文中的演示均来自Windows系统操作(其实是大差不差的,甚至我觉得Linux会更加方便)

  • 环境搭建
    这个脚本需要在nodejs 12.0以上的的环境,没有的话可以手动下载获取;在根目录下运行cmd或快捷键win+r运行cmd在命令提示符中输入cd 文件根目录;运行npm install,执行安装依赖。
  • 检查环境是否安装成功
    windows操作系统下,快捷键win+R运行cmd,输入node -v,返回版本号即成功
    Linux操作系统下,终端运行node --version,输出版本号即成功
  • 运行前的准备工作
    需要两个QQ号,一个作为脚本运行下的账号,另一个则是管理员账号(用于调试插件中的各种设置)

运行go-cqhttp

如果是Windows系统,请注意,不要双击go-cqhttp.exe直接运行,开发者在文档中注明此举可能会发生一些意料之外的问题。需要在shell命令提示符窗口下,进入根目录,运行./go-cqhttp,初次启动会在根目录下生成config文件。
我问过一些朋友,他们说会存在进程偶尔被杀死的情况,这个可能是脚本长时间无操作导致被系统清理,那么我们在运行./go-cqhttp的时候在命令后面加上/k,可以保持前台存活(如果还是被杀了的话可能是windows的配置有问题)

返回根目录,编辑生成的config.yml文件,下方账号设置中输入机器人的QQ账号,保存设置。
再次运行./go-cqhttp,此时会进入qq账号的登陆页面,跟随页面指引完成登陆,每次重新启动程序后5秒会自动根据设置信息登陆,如果成功在命令提示符窗口内获取到了QQ消息则安装成功。
这个不会使你手机上登陆的QQ强制下线,但是我建议还是退出手机qq比较好。

功能的部署与设置

在一些开源平台上有许多基于nodebot和cqhttp的功能插件,上文介绍的cqhttp是允许多个插件同时执行的,这意味着你可以手动去写一个执行程序在cqhttp上运行,也可以直接使用插件项目达成一些很酷炫的效果。
打开根目录下的config.yml文件,编辑下方servers项目,添加连接服务列表,此设置是用于完成插件与cqhttp之间的本地连接的,请务必按照插件的配置说明进行设置。

尾声

至此,cqhttp的搭建已经大致完成了。它的功能相对于QQ自带的群聊机器人更加开放,可以代替人工去执行某些人工去执行一些复杂操作,而且它任劳任怨常年无休(除了被封号),可以极大拓展群聊功能性、娱乐性。如果你恰恰好还会一些后端编程,不放试一下使用cqhttp来搭建一个属于自己的QQ机器人。

目前我对这个机器人的功能还在探索阶段,将来我也会继续发表我使用云服务器ECS学习的心得体会,感谢阅览。

文章引用项目地址:

https://github.com/go-cqhttp/node
相关文章
|
Java 数据安全/隐私保护
|
5月前
|
数据采集 存储 API
Python爬虫结合API接口批量获取PDF文件
Python爬虫结合API接口批量获取PDF文件
|
9月前
|
机器学习/深度学习 算法 搜索推荐
Featurewiz-Polars:基于XGBoost的高性能特征选择框架,一行代码搞定特征选择
Featurewiz是一个强大的特征选择库,提供高度自动化的特征选择、全面的特征工程功能,并实现了高效的mRMR算法。它已成为许多数据科学家的首选工具,拥有140多篇Google Scholar引用。最新版Featurewiz-Polars通过集成Polars引擎,在处理速度和大规模数据集处理能力上显著提升。
255 2
Featurewiz-Polars:基于XGBoost的高性能特征选择框架,一行代码搞定特征选择
|
11月前
|
存储 JSON Java
1688订单接口获取指南
在电子商务中,订单数据的获取和管理至关重要。1688作为中国领先的B2B平台,提供了订单详情接口,允许开发者通过订单号获取详细信息,包括订单状态、收货地址、商品列表等。本文介绍如何使用该接口,涵盖注册账号、获取API密钥、安装必要库、构造请求URL、发送HTTP请求、解析响应数据及异常处理等内容,并提供Java示例代码。注意事项包括合规使用、数据安全和高效利用。
|
10月前
|
数据采集 Java API
淘宝商品详情获取api接口秘籍
本文介绍了获取淘宝商品详情的多种方法及其应用场景。首先,通过注册淘宝开放平台账号并创建应用,获取API接口权限。接着,详细讲解了使用Python调用API和Java编写爬虫两种技术手段,分别适用于对数据准确性和灵活性有不同要求的场景。案例分析展示了电商商家和市场分析师如何利用这些技术优化运营和洞察市场趋势。最后,强调了遵守平台规则的重要性,并提出了优化代码性能的建议。未来,随着技术进步,淘宝平台API功能将更加强大,数据分析也将更加智能精准。
471 11
|
机器人 Java API
情人节福利,用JAVA做个QQ机器人,帮我提醒女神按时喝水和陪她聊天~(开源)
情人节福利,用JAVA做个QQ机器人,帮我提醒女神按时喝水和陪她聊天~(开源)
775 0
情人节福利,用JAVA做个QQ机器人,帮我提醒女神按时喝水和陪她聊天~(开源)
|
安全 Java Linux
java程序设置开机自启
java程序设置开机自启
775 1
|
数据采集 机器学习/深度学习 运维
超全!GitHub星标6500的Python入门教程大全,太强了!
Python 类库(模块)极其丰富,这使得 Python 几乎无所不能,不管是传统的 Web 开发、PC 软件开发、Linux 运维,还是当下火热的机器学习、大数据分析、网络爬虫,Python 都能胜任。 今天给小伙伴们分享的这份Python入门教程大全是从gitee上扒下来的,这套教程不是教科书,不会玩弄概念,而是力求口语化和通俗化,让读者尽快入门。
|
缓存 监控 NoSQL