WeCom App Callback Server Simple Framework
Project description
公众号消息回复服务
1. 项目介绍
本项目是一个基于 Flask 的 微信公众号/订阅号的自动回复消息的简单服务框架。 使用者只需要实现两个简单的函数,即可快速搭建一个企业微信应用接收/回复消息的接口服务。
实现过程参考 微信公众平台开发者文档-基础消息能力/接收普通消息 和 被动回复用户消息 两个文档进行实现。
2. demo 效果
使用 demo/demo.py 中的示例,可以直接将实现一个 ECHO 功能的企业微信应用服务。
这个 Echo 只为简单展示,而你可以基于该框架,实现更多的功能逻辑,甚至像我一样接入大模型,图片横向翻转表示图片处理能力:
3. 使用
如果要进行自动回复,需要企业的管理员进行创建应用,需要将开发着加成管理员,并且需要一些配置,才可以让企业微信后台将消息转发到我们应用的服务器上。
3.1 配置与信息记录
- 找到企业管理员,获得企业的ID,demo.py 中的 corp_id 需要填这个信息:
![conf_1](/Users/panzhongxian/Library/Application Support/typora-user-images/image-20240617200233913.png)
- 找管理员创建一个应用:
![conf_2](/Users/panzhongxian/Library/Application Support/typora-user-images/image-20240617200331712.png)
![conf_3](/Users/panzhongxian/Library/Application Support/typora-user-images/image-20240617200403960.png)
- 配置 URL、Token、AED Key,这里如果服务没有搭建,是不能保存成功的,我们先留住页面,启动服务后来保存:
![conf_4](/Users/panzhongxian/Library/Application Support/typora-user-images/image-20240617200445906.png)
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,也可以关注 知乎/公众号【老白码农在奋斗】留言咨询。
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file wecom_app_svr-0.1.0.tar.gz
.
File metadata
- Download URL: wecom_app_svr-0.1.0.tar.gz
- Upload date:
- Size: 7.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 749781a7d707ac002d6e9809d3a73083e3f4a2c325a01ebe465975d613c3f75c |
|
MD5 | df4f8fbcc2208c8f31ea662e80c4dc74 |
|
BLAKE2b-256 | 221dbc67ee973337c710c56bbb2cb2cd82e0f7914b80ad08edd96d8164a3318f |
File details
Details for the file wecom_app_svr-0.1.0-py3-none-any.whl
.
File metadata
- Download URL: wecom_app_svr-0.1.0-py3-none-any.whl
- Upload date:
- Size: 7.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.1 CPython/3.10.14
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | a1af869010151030e9d9996905ae6bc061bbd4f067f13ffcfec0eaf10c25ab8e |
|
MD5 | 348d67343238108ffca2f998b797a7c2 |
|
BLAKE2b-256 | 1b0468bce1826d234da2b0d06857e691b5c05e77d21871ca4a1f0c3344aeb257 |