企业微信机器人开发文档
摘要
如果想让机器人的回复更加灵活可控,使用个人或企业内部的数据资料等,那么就需要构建自己的企业微信机器人。文章列举了构建机器人的过程,如果只是想直接使用,可以直接下载代码构建即可。
前置准备
环境要求
- 企业微信管理员权限(用于创建API模式的智能机器人)
- 具备域名的可公开访问项目
- Java 9以下版本需要下载JCE无限制权限策略文件(我直接java17)
技术准备
引入官方代码
- 从企业微信开发者中心下载官方提供的加解密代码


- 将 com/qq/weixin/mp/aes 目录下的所有Java文件复制到您的项目中

- 确保相关导入没有问题,无编译错误
交互流程

URL验证接口实现
1 | /** |
接收消息接口实现
数据结构定义
1 | @Data |
接口代码
这里代码如果看着比较复杂,可以直接下载tag:
v0.1版本,只是做了简单的文本回复测试。这里代码是已经打通百炼。
1 | /** |
消息格式说明
企业微信推送的消息格式示例:实际以官方最新内容为准。
1 | { |
修改加解密工具类
修改 JsonParse 类的 extract 方法:
1 | /** |
代码路径
如果有帮助,点点star https://github.com/zhaozhiwei1992/weixin-work-bot
配置与测试
应用部署
将应用部署到具备域名的服务器上并确保应用可通过HTTPS访问(企业微信要求回调URL必须是HTTPS)
机器人配置
- 在企业微信管理后台创建API模式的智能机器人

- 随机生成Token和EncodingAESKey,在application.yml中填入生成的Token和EncodingAESKey
- 设置回调URL为:https://您的域名/robot/push/wechat?corpid=$CORPID$

测试验证
URL验证测试:保存机器人配置时,企业微信会自动调用验证接口
消息接收测试:
在企业微信中单聊或群聊中@机器人发送消息,查看后台日志确认收到并正确处理消息,验证机器人是否能正确回复。

常见问题排查
- URL验证失败:检查Token、EncodingAESKey和corpid是否正确
- 解密失败:检查提取加密消息的方法是否正确修改
- 无法回复消息:检查回复消息的格式是否符合企业微信要求,回复msgtype一定要用stream,否则可能出现都访问通了,但是客户端收不到消息。
- HTTPS证书问题:确保证书有效且受信任
注意事项
性能考虑:消息处理应尽量高效,避免超时(企业微信默认超时时间为5秒)
安全考虑: 验证消息签名确保请求来自企业微信
对用户输入进行适当过滤和转义,防止注入攻击
错误处理:妥善处理所有异常,避免服务崩溃
日志记录:详细记录请求和响应信息,便于排查问题
通过以上步骤,您可以成功开发并部署一个企业微信智能机器人,实现接收消息和自动回复的功能。
参考
https://developer.work.weixin.qq.com/community/question/detail?content_id=16740110965903826290