前言

在做一些项目监控或者提醒的时,经常需要给相关人员发送微信消息或者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] 二维码已上传云存储[ https://i.loli.net/2017/10/19/59e874755a909.png ]
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] 二维码已上传云存储[ https://i.loli.net/2017/10/19/59e87467de7ce.jpg ]
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
调用示例1http://127.0.0.1:3000/openwx/send_friend_message?markname=xxx&content=%e4%bd%a0%e5%a5%bd
调用示例2http://127.0.0.1:3000/openwx/send_friend_message?id=xxxx&content=hello

更多API接口可以查看文档

https://github.com/sjdy521/Mojo-Weixin/blob/master/API.md

QQ API接口

API发送好友消息
uri/openqq/send_friend_message
请求参数uid: 好友的QQ号 content: 发送的消息(中文需要做urlencode)
数据格式application/x-www-form-urlencoded
调用示例1http://127.0.0.1:5000/openqq/send_friend_message?uid=xxx&content=%e4%bd%a0%e5%a5%bd

其他

除了api接口,微信和QQ客户端还有更多的功能,具体想要了解可以查看相关文档。

微信客户端:

https://github.com/sjdy521/Mojo-Weixin

QQ客户端:

https://github.com/sjdy521/Mojo-Webqq

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐