大家好,我终于又想起来更新博文了…
这次要聊的内容是关于微信HOOK的消息开发,作为一个用户基数庞大的聊天工具,齐全的消息类型是必不可少的,例如发送文字、图片、语音、文件、视频、名片等等,细细分类的话也是相当多的
前段时间遇到一个朋友,需求也很简单,定做一个机器人,要让几个群里的消息可以互通,由机器人进行转发
基本就是这样的形式
朋友的要求并不高,只要机器人同步文字和图片即可
我听了需求之后,觉得并不复杂,也就是收发文字和图片而已,就应下了,随后开始进行分析
文字的同步自然不必说,是比较简单的
分析到图片后,我遇到了非常多的难题
首先,图片的格式众多,简单的分大类就有三种,分别是表情包、动态图、图库中的图片
在微信中给他们分类的标注也是不同的,并且在实际测试中,发现图片的大小也在影响格式
勉强分析完了众多的格式之后,进行了实际测试,又发现了部分比较大的图片,需要有一个下载过程,软件需要等待下载完成才能发送图片,这个下载过程受制于电脑和网速,几乎处于不可控状态,写到这里我就意识到这个方案可能走了弯路
我整理了一天的思路,灵光一闪,我一直以来的思路都是收到消息后再进行发送操作,需要执行两步,而微信中不是有一个转发的功能吗?
于是我猜测,这里的转发极有可能是通过消息ID进行转发的,每条消息都有一个自身的ID编号,提交这个ID编号给转发接口,应该就能直接完成转发操作,不需要解析消息的内容了
想到这里我就开始分析转发接口和消息ID,果不其然,一切都和我想的一样
这样一来,同步机器人便完成了,我们又进行了详细的测试,各类消息,不仅限于文字和图片,几乎所有类型的消息都可以转发,转发效率也相当之快,我们最高进行了一秒10张图片的转发测试,软件依旧快速的完成了,没有遗漏
到这里,机器人的制作就完成了,朋友的目的也完美达到,能几个群一起管理,更加方便
尾声:有时候研究方向和思路比技术更重要,若我没有转换思路,依然在死磕各种消息类型,机器人做成是没有问题,但实际使用恐怕会有很多麻烦,而转发的接口只需要一个消息ID,简单快捷,前后差距相当大,工作量也大大减小
微信开发方面的交流学习可联系博主,详情可点击头像查看签名