微信企业版针对群聊提供了一个群机器人的功能,通过向企业微信提供的一个webhook接口发送规定的post内容,即可实现在企业微信群里面发送消息。具体接口使用文档:https://work.weixin.qq.com/help?doc_id=13376
虽然接口的使用和请求格式挺简单的,但是总觉得在java上使用起来还是不是那么方便,于是我花了1天时间对这个接口进行了个简单的封装,并且将这个项目开源并打包发布到maven中央仓库。
开源地址:
github:https://github.com/lqccan/wechat-work-bot
gitee:https://gitee.com/lqccan/wechat-work-bot
maven依赖:
<dependency> <groupId>com.github.lqccan</groupId> <artifactId>wechat-work-bot</artifactId> <version>1.0</version> </dependency>
建议点击https://mvnrepository.com/artifact/com.github.lqccan/wechat-work-bot查看最新版本,避免本文上述代码版本号忘记更新的问题。
使用样例参考:
public class AppTest { private Bot bot; /** * 构造机器人对象 */ @Before public void buildBot() { bot = new Bot("这里填自己的webhook地址"); } /** * 文字测试 */ @Test public void textTest() { TextMsg textMsg = new TextMsg(); textMsg.setContent("文字发送\nhttp://www.3kkg.com"); bot.send(textMsg); } /** * markdown测试 */ @Test public void markdownTest() { MarkdownMsg markdownMsg = new MarkdownMsg(); markdownMsg.setContent("实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n" + " >类型:<font color=\"comment\">用户反馈</font>\n" + " >普通用户反馈:<font color=\"comment\">117例</font>\n" + " >VIP用户反馈:<font color=\"comment\">15例</font>"); bot.send(markdownMsg); } /** * 图片测试 */ @Test public void imageTest() { ImageMsg imageMsg = new ImageMsg(); //本地文件 // imageMsg.setFile(new File("/Users/xxx.png")); //网络文件 imageMsg.setFile("https://i.loli.net/2020/02/04/znKwNdcSujE2i4l.png"); bot.send(imageMsg); } /** * 图文测试 */ @Test public void articleTest() { ArticleMsg articleMsg = new ArticleMsg(); articleMsg.setTitle("图文"); articleMsg.setDescription("这是一条图文消息"); articleMsg.setUrl("https://www.3kkg.com"); articleMsg.setPicurl("https://i.loli.net/2020/02/04/znKwNdcSujE2i4l.png"); bot.send(articleMsg); } /** * 多个图文测试 */ @Test public void articleListTest() { List<ArticleMsg> list = new ArrayList<ArticleMsg>(); for (int i = 1; i <= 3; i++) { ArticleMsg articleMsg = new ArticleMsg(); articleMsg.setTitle("图文"+i); articleMsg.setDescription("这是一条图文消息"); articleMsg.setUrl("https://www.3kkg.com"); articleMsg.setPicurl("https://i.loli.net/2020/02/04/znKwNdcSujE2i4l.png"); list.add(articleMsg); } bot.send(list); } }
结果示例: