Jason Pan

10分钟搭建能回消息的企微应用

潘忠显 / 2024-08-19


之前文章介绍了如何10分钟内,搭建能回消息的企微机器人。文章获得了不少点赞,在 GitHub 上的项目也有31个 Star。但该功能属于内测的能力,很多企业未开通该能力。

如果不在腾讯,你还有一种方式,可以让你能方便地接收并回复消息。那就是企业应用,但需要说明的是该方式也有一定的局限性:1. 不能引入到群聊中;2. 需要企业管理员给创建应用。

企业应用被动回复消息相对群机器人来说,没那么灵活。但是他另外可以支持菜单事件审批状态通知获取地理位置等丰富的功能,被动消息回复只能其锦上添花的一项功能

本文介绍如何使用 一个 50行的 Python文件,10分钟内创建起一个可以回复消息的【企业应用】。如果项目能给你带来些许便利,请不吝加星 Star

项目地址:https://github.com/easy-wx/wecom-bot-svr

一、demo 效果

使用 demo/demo.py 中的示例,可以直接将实现一个 ECHO 功能的企业微信应用服务。

demo_1

这个 Echo 只为简单展示,而你可以基于该框架,实现更多的功能逻辑,甚至像我一样接入大模型。

demo_2

图片横向翻转表示图片处理能力:

demo_3

二、使用

如果要进行自动回复,需要企业的管理员进行创建应用,需要将开发着加成管理员,并且需要一些配置,才可以让企业微信后台将消息转发到我们应用的服务器上。

2.1 配置与信息记录

  1. 找到企业管理员,获得企业的ID,demo.py 中的 corp_id 需要填这个信息:

conf_1

  1. 找管理员创建一个应用:

conf_2

conf_3

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

conf_4

2.2 启动部署服务

  1. 登录云主机,创建一个合适的目录,copy demo.py 到该目录下
  2. 安装依赖包,pip install wecom-app-svr
  3. 修改 demo.py, 修改 corp_id 为上边查询出的 【企业ID】
  4. 运行服务,python demo.py
  5. 回到3.1配置页面,点击【保存】,如果没有报错,说明服务已经启动成功了

3.3 测试服务

通过上面的配置,我们已经实现了可以个性化自动回复消息的企业微信-应用的回调服务,能够实现【demo 效果】中展示的功能。

2.4 正式环境使用的注意事项

  1. 不要直接使用 xxx 和 43 个 x 作为 Token 和 AES key,要自己生成一个随机的字符串。
  2. 也可以代码里不填写 corp ID、Token 以及 AES key,而是通过环境变量的方式进行传递:WECOM_APP_CORP_IDWECOM_APP_TOKENWECOM_APP_AES_KEY,这样可以避免 代码泄露带来的风险。
  3. 因为服务框架相对简单,没有做太多的安全和性能措施,建议配合自己的安全网关一起使用。比如我使用的 127.0.0.1:5001 作为服务的监听地址, 然后通过 Nginx做反向代理,同时做一些安全控制。

三、支持消息说明

当前已经封装了企业微信-应用-官网支持的6种消息类型,具体的结构详见req_msg.py

可以立即回复的消息类型,也与官网支持的6种消息类型一致,具体结构见passive_rsp_msg.py

接收消息类型 被动回复消息类型
文本消息 文本消息
图片消息 图片消息
语音消息 语音消息
视频消息 视频消息
地理位置消息 图文消息
链接消息 模板卡片更新消息

其他说明

  1. 因为这里的需要配置【服务器地址URL】,如果你只有中国国内的云主机,还需要一个备案的域名,不然会被云厂商拦截请求;如果是中国境外的云主机则无此限制。具体的原因有兴趣的可以参考我的文章:《网站不备案是否能够访问?
  2. 如有任何问题欢迎提 Issue,也可以关注 知乎/公众号【老白码农在奋斗】留言咨询。