与微信同源的企业微信,正在成为更多企业的首选即时通讯软件,承载着企业内部的沟通与协作。伴随着企业的数智化转型升级,各类业务系统也有给员工发送消息的需求。比如,WMS系统给库管发送低库存提醒,MES给巡检推送抽检请求等。为此,企业微信以Web API的形式提供了编程接口,第三方开发者可以通过调用这些API实现消息发送等实用功能。

(服务端API的接口调用流程,来自企业微信官网)

然而,这些API都是为专业开发者设计的。以降低技术门槛闻名的低代码技术,能帮助没有受过专业编程训练的平民开发者,无编码调用这些Web API来实现企业微信消息发送吗?活字格企业级低代码开发平台给出了肯定的答案。本文将为您详细介绍使用活字格发送企业微信消息的操作技巧。

(支持调用Web API的活字格企业级低代码开发平台)

准备环境

首先,您需要在企业微信管理后台的应用管理选项卡中,自建一个应用。应用创建成功后,系统会为您生成AgentId和Secret两个字符串。调用API时,您需要提供这两个字符串进行认证。除了上面两个绑定到具体应用上的信息,认证时还需要您提供企业ID,即corpId。您可以在我的企业选项卡最下方获取。

(获取AgentId和Secret)

每次调用Web API都需要这些字符串。所以在使用活字格开发企业级应用时,推荐您在活字格工程中专门建立一个数据表,比如“企业微信配置表”来保存这些信息。

(活字格中的企业微信配置表)

获取凭证

根据企业微信服务端API的帮助文档要求,系统调用发送消息的API时需要提供access_token作为调用接口的凭证。凭证可重复使用,企业微信服务生成并发放凭证时会指定过期时间(默认2小时),并限制获取凭证的接口调用频率。所以,在调⽤企业微信提供的获取AccessToken接⼝后,您还需要将获取的 access_token 缓存下来,根据有效期进行刷新。

值得一提的是,从安全性方面考虑,access_token的获取和缓存都需要在服务器上执行,不能将敏感数据发送给Web浏览器。如果低代码开发工具不支持前后端分离的话,这一步将会成为一个无法跨越的鸿沟。所以,在做技术选型时,您需要特别关注这种系统架构特征,避免因此限制了开发工具的应用场景。比如以活字格为代表的企业级低代码开发工具,就具有类似传统纯代码开发的架构,天然支持模型驱动开发和前后端分离。采用活字格开发的话,这一点将不是障碍。

在活字格中,您可以创建一个用来获取当前可用凭证的服务端命令。在这个命令中,您需要从存储access_token的数据表中读取当前存储的凭证和过期时间,如果凭证为空或者已经过期,则使用“发送HTTP请求”服务端命令,从企业微信的接口获取access_token和过期时间,并更新该数据表,最终返回有效的access_token。

调用企业微信获取凭证接口时,需要用到企业ID和应用的secret,您可以从第一步创建的数据表中查询获取。

(获取access_token的服务端命令)

为了提升系统安全性,获取当前可用凭证的服务端命令需要设置为“私有”,仅供其他服务端命令调用,不允许浏览器直接访问,杜绝凭证外泄的风险。

发送消息

企业微信的应用消息功能支持文本、图片、视频、文件和图文等类型。您可以在企业微信的帮助文档的消息推送→发送应用消息菜单,找到接口说明。以文本消息为例,调用API时,您需要提供调用凭证(access_token)、接收消息的成员ID列表、接收消息的部门ID列表、接收消息的标签ID列表、应用的agentId、带有HTML标签的消息内容等参数。

首选,您需要在活字格中建立企业微信用户ID、部门ID、标签ID的对应规则,或者用数据表保存对应关系。因为获取可用凭证的服务端命令不允许浏览器调用,您需要将发送消息的逻辑同样封装为服务端命令,在服务器上执行。

在该服务端命令中,您只需调用步骤2中的获取可用凭证服务端命令,拿到access_token后,结合从服务端命令的参数中获取接收消息的成员、部门和标签信息、消息内容,从步骤1的配置表中读取agentId,通过“发送HTTP请求”命令,POST到企业微信发送文本消息Web API,完成文本消息发送操作。

(发送文本消息的服务端命令)

在需要发送文本消息的页面或者定时任务中,您只需调用发送文本消息服务端命令,传入接受者和消息内容,就可以自动发送企业微信消息了。

(企业微信PC版客户端中接收到文本消息)

不难发现,活字格集成企业微信的过程非常简单,无需编写任何一行代码。事实上,不止于企业微信,您可以沿用这种做法,与所有提供了Web API的系统进行集成,实现打通数据孤岛、多系统协同增效的目标

立即行动

近日,来自葡萄城应用开发合作伙伴,四川驭梦前行的项目负责人谢厅,在葡萄城公开课上与数百名开发者分享了使用活字格对接企业微信的经验和技巧。您可点击此处观看该场公开课的视频回放。