再过一周,中华儿女即将迎来新一轮的全民抢红包浪潮,微信朋友圈首先为这场狂欢吹响了号角,对此,大部分人都表示:
不知道微信接下来还有啥幺蛾子,但小编觉得还是聊天记录里的红包最靠谱,最实惠。那么如何才能在与家人共享天伦的时候,还能get到微信里的每一个红包呢?本文以QQ接收app分享红包为例教你怎么做!
作者简介:林飞扬,目前在GOZAP从事软件开发,使用编程语言PHP,Node,Java。小小程序员一枚,正在向全栈工程师进军中。
前段时间同事之前用某App特别多,每天都有用此App在QQ上分分享红包,每次要打开QQ上的分享链接领取,领的多了就感觉特别麻烦,懒人总是能想偷懒的办法,我就想有没有一个可以监控自己QQ消息的软件呢。
有了想法之后就要立刻展开行动,首先去GitHub上看下有没有开源项目。搜索之后看到一个比较靠谱的:Mojo-Webqq,一个使用Perl语言编写的Smartqq客户端框架,基于Mojolicious,要求Perl版本5.10.1+,可通过插件提供基于HTTP协议的api接口供其他语言或系统调用。
项目地址:https://github.com/sjdy521/Mojo-Webqq
Dockerfile和依赖文件:https://github.com/329379172/mojoqq-image
云服务商选择『灵雀云』提供容器服务:http://www.alauda.cn/
镜像地址:https://hub.alauda.cn/repos/linfeiyang/mojoqq-image
根据项目作者写的使用方法和文档,很快就在本机运行了起来,运行效果如下:
根据提示的路径找到二维码图片,使用手机扫码登录,执行效果如下图:
至此已经可以成功监控到QQ消息了,接下来就是把消息处理一下了。我使用了比较熟悉的,也是世界上最好的语言PHP,来写了具体的处理QQ消息的接口,具体思路是:
使用Mojo-Webqq的消息上传插件,将消息上传至我的PHP处理接口,然后使用PHP来解析是否有符合条件的URL地址,如有就做我们自己想做的事,也就是领取红包了。PHP的具体代码在这里我就不贴了。
到此软件基本上可以正常工作,接下来就是最重要的部分了:把他做成可以复用的Docker镜像。Docker是什么我就不做讲解了,在Docker如此流行的今天,一个程序员如果不知道是什么就该去补课啦!补课传送门:『Docker入门与实践』,『从Docker到CaaS』。
Dockerfile编写
经过多个N个版本的迭代,最终代码如下:
其实写这个Dockerfile并不难,主要是多次尝试,不断踩坑的过程,有点考验耐心。之前用Docker官网的镜像仓库,着实有点慢,后来换了灵雀云的快多了,先感谢下灵雀云平台,哈哈。
总结来说就是四步:
1、先搞一个基础镜像包:CentOS 7
其实最一开始使用的并不是这个,而是Perl官方的一个包,后来发现里边有控制台输出乱码的问题,索性就换成了比较熟悉的CentOS 7,但是CentOS这个包确实有点重,未来还有改进空间。
2、安装Perl环境
这个就没啥好讲解的了,从Perl官方找的安装教程也基本就是这样了。
3、安装Mojo:Webqq和其依赖的模块
4、运行主程序
此文件中主要就是监控QQ消息,上传到远端的处理接口,文件地址:https://github.com/329379172/mojoqq-image/blob/master/main.pl
构建镜像
接下来就是构建镜像,用户的GitHub账号和灵雀云关联之后,就可以直接通过GitHub中的Dockerfile和相关代码生成最终镜像,并上传至镜像仓库中。此时这个镜像就可以在任何有Docker的环境中复用了。
镜像运行
1、在灵雀云的GUI环境中运行
这种方式和Docker的命令行运行方式是一样的
sudo docker run -it -d -e ‘QQ=286587956′ -e’LANG=en_US.UTF-8’ –privileged=true -v ~/:/tmpindex.alauda.cn/linfeiyang/mojoqq-image
2、还可以通过CLI方式运行
登录:
创建服务:
查看日志
大家会发现每种运行方式都会加一个LANG=en_US.UTF-8 环境变量,这个其实就是解决之前说的乱码问题。
分享一个最终的运行结果图:
可以看到成功监听到消息并上传成功了。
其实Mojo-Webqq能做的还有很多,大家可以参考编写功能更强的镜像,像QQ机器人啥的。最后感谢下Mojo-Webqq的作者,写出了如此好的程序。他还写了监控微信聊天消息的开源项目:https://github.com/sjdy521/Mojo-Weixin(为了微信红包,你懂的),大家快去github点个赞吧!
编者最后的话:小编在此强调,如果手不够快,这个工具也只能帮你看看你错过了多少红包啦啦啦啦(逃
网友评论