概述
在前面的文章中,介绍了如何创建个人企业账号以及在企业账号中自建应用,这里就继续介绍如何让自己自建的应用能够与我们的业务交互,也就是接收消息和事件~
关于这部分内容,官网也给了具体的解释:
为了能够让自建应用和企业微信进行双向通信,企业可以在应用的管理后台开启接收消息模式。
开启接收消息模式的企业,需要提供可用的接收消息服务器URL。
开启接收消息模式后,用户在应用里发送的消息会推送给企业后台。此外,还可配置地理位置上报等事件消息,当事件触发时企业微信会把相应的数据推送到企业的后台。
企业后台接收到消息后,可在回复该消息请求的响应包里带上新消息,企业微信会将该被动回复消息推送给用户。
除了上述的介绍外,官网有具体引导:接收消息与事件
自建应用
开启接收消息与事件
开启应用消息接收
在企业的管理端后台,进入需要设置接收消息的目标应用,点击“接收消息”的“设置API接收”按钮,进入配置页面。
先给大家展示下笔者这里的配置:
除了URL需要自己配置,Tokne和EncodingAESKey都是随机获取的;
这里的url,为笔者公司公网IP所对应的域名,加上路由器上的自定义转发端口,转发到内网我指定的一台设备上去,这台设备上,就搭建了我使用Python的web.py框架部署的服务,来跟自建应用之间做交互,URL中匹配的“recvmsg”,是我服务的路由之一~标识匹配后端的接收消息模块。
注意:在配置接收消息服务器的url之前,你需要先把你的服务开起来,并保证能够正确响应请求,回复参数,这样你的服务器配置才能正确的提交上去~
因为在你点击保存按钮的时候,企业微信回去验证你URL的有效性~官网的接收消息与事件有详细说明,所以,后面的重点就是先把代码部分撸起来。
代码
前面说到后端服务使用web.py,关于web.py的相关知识,这里就不详细描述了。
首先对整个项目涉及到的部分做个概览,后面再对每个部分做详解:
root@saier-zj-online-game-192:~/zj/gm_tools# tree .
.
├── callback #官方提供的加解密模块,不需要编辑
│ ├── ierror.py
│ ├── ierror.pyc
│ ├── __init__.py
│ ├── __init__.pyc
│ ├── Readme.txt
│ ├── Sample.py
│ ├── WXBizMsgCrypt3.py
│ ├── WXBizMsgCrypt.py
│ └── WXBizMsgCrypt.pyc
├── command.py #指令操作模块
├── command.pyc
├── config.py #配置参数模块
├── config.pyc
├── gm_push.py #进程控制脚本
├── gm_push.pyc
├── handler.py #路由所对应的全部方法
├── handler.pyc
├── keys #远程连接使用到的密钥
│ └── all
├── log #日志目录
│ ├── WXCommand.log
│ └── WXManager.log
├── manage_msg.py #核心逻辑处理模块
├── manage_msg.pyc
├── nohup.out
├── restart.sh #服务控制脚本
├── urls.py #路由模块
└── urls.pyc
关于配置接受消息与事件所涉及到的代码,以及后续所有功能和回调代码,想了想还是大家自己去GitHub上看吧,没必要一句一句来剖析;
本想着写一部连续文章的,想想还是到这里结束掉好了,大家有问题的可以给我留言,祝顺利。
GitHub地址:https://github.com/caijijian/qywx