公众号消息回复服务
1. 项目介绍
本项目是一个基于 Flask 的 微信公众号/订阅号的自动回复消息的简单服务框架。 使用者只需要实现两个简单的函数,即可快速搭建一个企业微信应用接收/回复消息的接口服务。
实现过程参考 微信公众平台开发者文档-基础消息能力/接收普通消息 和 被动回复用户消息 两个文档进行实现。
2. demo 效果
使用 demo/demo.py 中的示例,可以直接将实现一个 ECHO 功能的企业微信应用服务。
这个 Echo 只为简单展示,而你可以基于该框架,实现更多的功能逻辑,甚至像我一样接入大模型,图片横向翻转表示图片处理能力:
3. 使用
如果要进行自动回复,需要企业的管理员进行创建应用,需要将开发着加成管理员,并且需要一些配置,才可以让企业微信后台将消息转发到我们应用的服务器上。
3.1 配置与信息记录
- 找到企业管理员,获得企业的ID,demo.py 中的 corp_id 需要填这个信息:

- 找管理员创建一个应用:


- 配置 URL、Token、AED Key,这里如果服务没有搭建,是不能保存成功的,我们先留住页面,启动服务后来保存:

3.2 启动部署服务
- 登录云主机,创建一个合适的目录,copy demo.py 到该目录下
- 安装依赖包,
pip install wecom-app-svr - 修改 demo.py, 修改 corp_id 为上边查询出的 【企业ID】
- 运行服务,
python demo.py - 回到3.1配置页面,点击【保存】,如果没有报错,说明服务已经启动成功了
3.3 测试服务
通过上面的配置,我们已经实现了可以个性化自动回复消息的公众号服务,能够实现【demo 效果】中展示的功能。
- **Echo功能 **:在公众号中发送一条消息,如果服务正常,会收到一条回复的 Echo 消息。文本、图片、语音消息。 目前 demo.py 中支持的 Echo 消息格式只有文本、图片、语音消息,其他消息格式可以自行实现处理逻辑
3.4 正式环境使用的注意事项
- 不要直接使用
xxx和 43 个x作为 Token 和 AES key,要自己生成一个随机的字符串。 - 也可以代码里不填写 corp ID、Token 以及 AES key,而是通过环境变量的方式进行传递:
WECOM_APP_CORP_ID、WECOM_APP_TOKEN、WECOM_APP_AES_KEY,这样可以避免 代码泄露带来的风险。 - 因为服务框架相对简单,没有做太多的安全和性能措施,建议配合自己的安全网关一起使用。比如我使用的 127.0.0.1:5001 作为服务的监听地址, 然后通过 Nginx做反向代理,同时做一些安全控制。
4. 支持消息说明
当前已经封装了微信公众号官网支持的6种消息类型,具体的结构详见req_msg.py:
- 文本消息
- 图片消息
- 语音消息
- 视频消息
- 地理位置消息
- 链接消息
可以立即回复的消息类型,也与微信公众号官网支持的6种消息类型一致,具体结构见passive_rsp_msg.py:
- 文本消息
- 图片消息
- 语音消息
- 视频消息
- 音乐消息
- 图文消息
其他说明
- 因为这里的需要配置【服务器地址URL】,如果你只有中国国内的云主机,还需要一个备案的域名,不然会被云厂商拦截请求;如果是中国境外的云主机则无此限制。具体的原因有兴趣的可以参考我的文章:《网站不备案是否能够访问?》
- 如有任何问题欢迎提 Issue,也可以关注 知乎/公众号【老白码农在奋斗】留言咨询。
Metadata
Release files for wecom-app-svr 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| wecom_app_svr-0.1.0.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| wecom_app_svr-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.3 kB
Release files / wecom_app_svr-0.1.0.tar.gz
| Download URL | wecom_app_svr-0.1.0.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
749781a7d707ac002d6e9809d3a73083e3f4a2c325a01ebe465975d613c3f75c
|
|
BLAKE2b-256 checksum How to use checksums |
221dbc67ee973337c710c56bbb2cb2cd82e0f7914b80ad08edd96d8164a3318f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.14
|
Release files / wecom_app_svr-0.1.0-py3-none-any.whl
| Download URL | wecom_app_svr-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.1 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
a1af869010151030e9d9996905ae6bc061bbd4f067f13ffcfec0eaf10c25ab8e
|
|
BLAKE2b-256 checksum How to use checksums |
1b0468bce1826d234da2b0d06857e691b5c05e77d21871ca4a1f0c3344aeb257
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.1 CPython/3.10.14
|