springboot整合企微webhook机器人发送消息提醒

作者:刨红薯的小羊竿尔 时间:2023-10-10 01:29:08 

一、获取企业微信群机器人 Webhook 地址

业务需要在企业微信推送告警监控或者定时提醒业务,就可以使用企业微信自带的机器人工具Webhook reboot作为消息的发起者!

打开手机端企业微信App,打开一个内部群聊,点击右上角图标进入到群聊设置,来到群机器人页面添加群机器人,设置群机器人昵称点击添加,机器人添加完成后出现的页面,请点击 Webhook 地址后的复制按钮;注意一般只有群主才有对应的权限哦。

二、Webhook支持消息类型

  • 文本消息

  • 图片消息

  • 文本卡片消息

  • 图文消息(批量)

  • markdown消息

三、Webhook使用配置

1.添加maven依赖

<dependency>
       <groupId>io.github.swalikh</groupId>
       <artifactId>wework-wehook-starter</artifactId>
       <version>1.0.0</version>
   </dependency>

2.配置webhook地址api

spring:
 message:
   wechat-webhooks:
   - https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx
   - https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=xxxxxxxx

3.注入MessageService并且发送消息

@Autowired
   private MessageService messageService;

1.发送普通文本消息

WeWorkWebhookMessage wessage = WeWorkWebhookMessage.buildText("hello");
messageService.send(weWorkWebhookMessage);

springboot整合企微webhook机器人发送消息提醒

2.发送图片(本地或者网络图片均可发送)

// networkImage 和 localImage 均可,格式可支持jpg&png
String networkImageUrl = "https://xxxxx/images/20210918100245.png";
String localImageFilePath = "/home/image/cat.png";
WeWorkWebhookMessage imageMessage =
       WeWorkWebhookMessage.buildImageMessage(networkImageUrl);
messageService.send(imageMessage);

springboot整合企微webhook机器人发送消息提醒

3.发送图文卡片消息(本地或者网络图片均可发送)

// networkImage 和 localImage 均可,格式可支持jpg&png
String networkImageUrl = "https://xxxx/images/20210918100245.png";
Article article = new Article()
       .setTitle("这是卡片的标题")
       .setUrl("http://www.google.com/这是点击的链接地址")
       .setPicurl(networkImageUrl)
       .setDescription("这是描述文字");
WeWorkWebhookMessage articleMessage =
       WeWorkWebhookMessage.buildNewsMessage(article);
messageService.send(articleMessage);

springboot整合企微webhook机器人发送消息提醒

4.发送markdown消息

MarkdownBuffer markdownBuffer = new MarkdownBuffer();
markdownBuffer.h2("H2").nextLine()
       .h3("H3").nextLine()
       .quote("quote").quoteEnd()
       .green("greenText").nextLine()
       .orange("orangeText").nextLine()
       .gray("grayText").nextLine()
       .code("single line code").nextLine()
       .link("link title","line URL").nextLine();

WeWorkWebhookMessage markDownMessage =
       WeWorkWebhookMessage.buildMarkDownMessage(markdownBuffer);
messageService.send(markDownMessage);

springboot整合企微webhook机器人发送消息提醒

四、dynamic-tp动态线程池框架告警集成了webhook机器人

yml配置:

springboot整合企微webhook机器人发送消息提醒

public void send(NotifyPlatform platform, String text) {
   String serverUrl = WechatNotifyConst.WECHAT_WEH_HOOK + platform.getUrlKey();
   MarkdownReq markdownReq = new MarkdownReq();
   markdownReq.setMsgtype("markdown");
   MarkdownReq.Markdown markdown = new MarkdownReq.Markdown();
   markdown.setContent(text);
   markdownReq.setMarkdown(markdown);

try {
       HttpResponse response = HttpRequest.post(serverUrl).body(JSONUtil.toJsonStr(markdownReq)).execute();
       if (Objects.nonNull(response)) {
           log.info("DynamicTp notify, wechat send success, response: {}, request:{}",
                   response.body(), JSONUtil.toJsonStr(markdownReq));
       }
   } catch (Exception e) {
       log.error("DynamicTp notify, wechat send failed...", e);
   }
}

来源:https://juejin.cn/post/7159866205375840292

标签:springboot,webhook,企微,机器人,发送消息
0
投稿

猜你喜欢

  • Unity 通过LineRenderer绘制两点之间的直线操作

    2021-08-04 04:15:08
  • Android垂直切换的圆角Banner与垂直指示器相关介绍与应用详解

    2023-01-09 02:59:15
  • 保证缓存和数据库的数据一致性详解

    2023-11-18 08:10:44
  • java实现mp3合并的方法

    2023-11-09 03:47:08
  • java实现图片缩放、旋转和马赛克化

    2021-07-23 03:04:54
  • JAVA Spring中让人头痛的JAVA大事务问题要如何解决你知道吗

    2023-01-14 04:58:04
  • 用Kotlin实现Android点击事件的方法

    2023-01-16 15:56:03
  • elasticsearch数据信息索引操作action support示例分析

    2022-03-18 02:09:07
  • Android 控件GridView使用案例讲解

    2023-07-14 17:33:28
  • Android下拉刷新控件PullToRefresh实例解析

    2022-01-27 08:01:14
  • Java 二分查找的实现及图例解析

    2023-10-28 11:41:57
  • C# WebApi CORS跨域问题解决方案

    2022-12-21 05:01:33
  • java报错:找不到或无法加载主类的解决方法简单粗暴

    2023-03-29 17:20:58
  • Android中ImageView实现选择本地图片并显示功能

    2023-07-02 23:47:09
  • Java开发实现人机猜拳游戏

    2023-10-17 16:01:35
  • 快速了解c# 结构体

    2022-10-19 05:38:45
  • Flutter状态管理Bloc使用示例详解

    2023-08-24 09:09:10
  • java 发送http和https请求的实例

    2023-11-29 12:46:52
  • Android项目实战之ListView悬浮头部展现效果实现

    2022-08-11 16:35:32
  • Base64编码解码原理及C#编程实例

    2022-05-07 03:58:53
  • asp之家 软件编程 m.aspxhome.com