前言
在做一些项目监控或者提醒的时,经常需要给相关人员发送微信消息或者QQ消息。
下面让我们自己动手来搭建一个微信和QQ消息的通知框架,已经在私人微信以及企业QQ测试能够正常使用。
搭建环境
为了快捷安装及使用,使用了docker环境以及相关镜像,不熟悉的docker的请自行学习。
docker-compose配置文件如下:
version: '2'
services:
weixin-plug:
image: sjdy521/mojo-weixin
environment:
MOJO_WEIXIN_LOG_ENCODING: utf8
volumes:
- /opt/weixin_and_qq:/tmp
ports:
- 3000:3000/tcp
qq-plug:
image: sjdy521/mojo-webqq
environment:
MOJO_WEBQQ_LOG_ENCODING: utf8
volumes:
- /opt/weixin_and_qq:/tmp
ports:
- 5000:5000/tcp
nginx:
image: nginx:1.12
volumes:
- /opt/weixin_and_qq:/usr/nginx/html
ports:
- 3001:80/tcp
共配置了三个服务,分别是微信客户端,QQ客户端和nginx。
nginx服务是用于网页请求登录二维码使用,微信客户端不使用网页的二维码,登录成功率很低。
可以根据自身的需求调整服务
通过docker-compose或者其他编排工具启动该配置文件。
登录
启动了三个服务,我们可以查看他们的日志信息
QQ服务日志:
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 当前正在使用 Mojo-Webqq v2.1.4
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 客户端加载cookie[ /tmp/mojo_webqq_cookie_default.dat ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 执行插件[ Mojo::Webqq::Plugin::UploadQRcode ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 执行插件[ Mojo::Webqq::Plugin::ShowMsg ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 执行插件[ Mojo::Webqq::Plugin::Openqq ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] Listening at "http://0.0.0.0:5000"
2017/10/19 下午5:45:47Server available at http://0.0.0.0:5000
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 初始化 smartqq 客户端参数...
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 正在获取登录二维码...
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 清除残留的历史二维码图片
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 二维码已下载到本地[ /tmp/mojo_webqq_qrcode_default.png ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 二维码已上传云存储[ /2017/10/19/ ]
2017/10/19 下午5:45:47[17/10/19 17:45:47] [info] 等待手机QQ扫描二维码...
微信日志:
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 当前正在使用 Mojo-Weixin v1.3.6
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 执行插件[ Mojo::Weixin::Plugin::UploadQRcode ]
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 执行插件[ Mojo::Weixin::Plugin::ShowMsg ]
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 执行插件[ Mojo::Weixin::Plugin::Openwx ]
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] Listening at "http://0.0.0.0:3000"
2017/10/19 下午5:45:33Server available at http://0.0.0.0:3000
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 客户端准备登录...
2017/10/19 下午5:45:33[17/10/19 17:45:33] [info] 二维码已下载到本地[ /tmp/mojo_weixin_qrcode_default.jpg ]
2017/10/19 下午5:45:34[17/10/19 17:45:34] [info] 二维码已上传云存储[ /2017/10/19/ ]
2017/10/19 下午5:45:34[17/10/19 17:45:34] [info] 等待手机微信扫描二维码...
如果可以打开上面日志中的云存储,可以直接打开手机扫码登录,如果不能打开,别忘了我们还有nginx。
微信二维码请求地址:
http://xxxxx:3001/mojo_weixin_qrcode_default.jpg
QQ二维码请求地址:
http://xxxxx:3001/mojo_webqq_qrcode_default.jpg
拿出你的手机QQ或者微信,扫一扫吧,然后确认登录。当在日志里看到登录成功,就完成了我们的登录过程。
API接口的使用
微信 API接口
API | 发送好友消息 |
---|---|
uri | /openwx/send_friend_message |
请求参数 | id: 好友的id(这个不是微信账号哦) markname: 好友备注名称 |
数据格式 | application/x-www-form-urlencoded |
调用示例1 | http://127.0.0.1:3000/openwx/send_friend_message?markname=xxx&content=%e4%bd%a0%e5%a5%bd |
调用示例2 | http://127.0.0.1:3000/openwx/send_friend_message?id=xxxx&content=hello |
更多API接口可以查看文档
/sjdy521/Mojo-Weixin/blob/master/
QQ API接口
API | 发送好友消息 |
---|---|
uri | /openqq/send_friend_message |
请求参数 | uid: 好友的QQ号 content: 发送的消息(中文需要做urlencode) |
数据格式 | application/x-www-form-urlencoded |
调用示例1 | http://127.0.0.1:5000/openqq/send_friend_message?uid=xxx&content=%e4%bd%a0%e5%a5%bd |
其他
除了api接口,微信和QQ客户端还有更多的功能,具体想要了解可以查看相关文档。
微信客户端:
/sjdy521/Mojo-Weixin
QQ客户端:
/sjdy521/Mojo-Webqq