企业微信接收消息与事件&完结篇

概述

在前面的文章中,介绍了如何创建个人企业账号以及在企业账号中自建应用,这里就继续介绍如何让自己自建的应用能够与我们的业务交互,也就是接收消息和事件~

关于这部分内容,官网也给了具体的解释:

为了能够让自建应用和企业微信进行双向通信,企业可以在应用的管理后台开启接收消息模式。
开启接收消息模式的企业,需要提供可用的接收消息服务器URL。
开启接收消息模式后,用户在应用里发送的消息会推送给企业后台。此外,还可配置地理位置上报等事件消息,当事件触发时企业微信会把相应的数据推送到企业的后台。
企业后台接收到消息后,可在回复该消息请求的响应包里带上新消息,企业微信会将该被动回复消息推送给用户。

除了上述的介绍外,官网有具体引导:接收消息与事件

自建应用

开启接收消息与事件

开启应用消息接收

在企业的管理端后台,进入需要设置接收消息的目标应用,点击“接收消息”的“设置API接收”按钮,进入配置页面。

先给大家展示下笔者这里的配置:

image

除了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

原文地址:https://www.cnblogs.com/storyawine/p/15569394.html