1.先在群里添加机器人,然后获取机器人的webhook地址:

假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=693a91f6-7xxx-4bc4-97a0-0ec2sifa5aaa

2.有多种方式发送群消息,可以采用curl,也可以采用发送https请求的方式,我这里采用okhttp发送http请求,pom如下:

<!-- https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp --><dependency><groupId>com.squareup.okhttp3</groupId><artifactId>okhttp</artifactId><version>4.9.0</version></dependency>

调用okhttp核心代码如下:

/**
*   @content:要发送的消息
*   WECHAT_GROUP:机器人的webhook
*/
public static String callWeChatBot(String content) {OkHttpClient client = new OkHttpClient().newBuilder().build();MediaType mediaType = MediaType.parse("application/json");RequestBody body = RequestBody.create(content,mediaType);Request request = new Request.Builder().url(WECHAT_GROUP).method("POST", body).addHeader("Content-Type", "application/json").build();Response response = null;try {response = client.newCall(request).execute();} catch (IOException e) {e.printStackTrace();}return response.message();}

3.生成核心方法的参数,如果发送markdown格式的消息:

public static String generalBotBodyInfo(File f1, File f2, String cusenv, String myenv) {String content = "**信息摘要:** \n" +">文件1:<font color=\\\"info\\\">" + f1.getName() + "</font>\n " +">服务器路径:<font color=\\\"info\\\">" + f1.getAbsolutePath() + "</font>\n" +">文件传输环境:<font color=\\\"info\\\">" + myenv + "</font>\n " +">客户接受环境:<font color=\\\"info\\\">" + cusenv + "</font>\n" +">时间:<font color=\\\"info\\\">" + new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()) + "</font>";String textTemplate = "{\n" +"    \"msgtype\": \"markdown\",\n" +"    \"markdown\": {\n" +"        \"content\": \"" + content + "\",\n" +"    }\n" +"}";return textTemplate;}

如果发送text格式的消息:

public static String generalBotBodyAT() {String textTemplate = "{\n" +"    \"msgtype\": \"text\",\n" +"    \"text\": {\n" +"        \"content\": \"今天下午大暴雨\",\n" +"        \"mentioned_list\":[\"@all\"],\n" +"    }\n" +"}";return textTemplate;}

如果发送图片,不能超过2M,支持的格式为JPG,PNG格式:

public static String generalBotBodyImage() {String base64 = "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";String md5 = "862715fb36992d6746641ff02ee85b8c";String textTemplate = "{\n" +"    \"msgtype\": \"image\",\n" +"    \"image\": {\n" +"        \"base64\": \"" + base64 + "\",\n" +"        \"md5\": \"" + md5 + "\"\n" +"    }\n" +"}";return textTemplate;}

发送图片需要对图片进行base64编码并计算图片的md5值,把计算的方法也一并献上,需要注意图片不要过大,不然base64编码的结果会超级长,甚至超过String的最大长度,java.util.Base64这个工具类有现成的,直接用就行

public static String getFileBase64(String path){try {FileInputStream inputStream = new FileInputStream(new File(path));byte [] bs = new byte[inputStream.available()];inputStream.read(bs);return Base64.getEncoder().encodeToString(bs);} catch (FileNotFoundException e) {e.printStackTrace();}catch (IOException e){e.printStackTrace();}return null;}

计算md5值方法多种多样,如果你发送的图片是固定的,建议算好后直接用常量保存就行,比如我发送的是个表情包,就提前算好了。如果你是windows系统可以用好压之类的工具直接查看文件的md5,如果你是mac os系统,可以这样:

如果图片是动态的,可以用java现成的工具类直接计算它的md5,pom如下:

<!-- https://mvnrepository.com/artifact/commons-codec/commons-codec --><dependency><groupId>commons-codec</groupId><artifactId>commons-codec</artifactId><version>1.10</version></dependency>

代码:

public static String getFileMD5(String path) {try {FileInputStream inputStream = new FileInputStream(new File(path));byte[] buf = new byte[inputStream.available()];inputStream.read(buf);return DigestUtils.md5Hex(buf);} catch (IOException e) {e.printStackTrace();}return null;}

以上。

【Java】企业微信机器人自动发送群消息相关推荐

  1. 利用python进行企业微信机器人自动发送消息

    def test_004_robot(self):headers = {"Content-Type": "text/plain"}s="卖品,打印码: ...

  2. java对接企业微信机器人发送消息

    [Java]企业微信机器人自动发送群消息 先在群里添加机器人,然后获取机器人的webhook地址: 假设webhook是:https://qyapi.weixin.qq.com/cgi-bin/web ...

  3. 企业微信加密消息体_企业微信机器人怎么发消息?企业微信机器人可以定时发消息吗?...

    企业微信外部群自带群机器人功能,可以协助员工高效管理社群,帮助我们运营客户,那么企业微信机器人怎么用呢? 使用企业微信机器人,需要管理员先进入企业微信管理后台,在[客户联系]-[效率工具]-[自动回复 ...

  4. 基于企业微信机器人实现预警功能

    效果如图: 首先创建企业微信机器人 接下来会如下所示获取到消息推送url 2.基于ES查询获取库中信息进行预警: package com.adgn.timer.timer;import com.adg ...

  5. 企业微信机器人发送消息

    背景:之前用钉钉机器人可以发送消息,可以将线上的告警通知发送到消息群中,后来企业微信也支持在群组中增加机器人了,钉钉和企业微信机器人的使用很相似,都是使用webhook的方式来进行实现的,话不多说,咱 ...

  6. springboot实现企业微信机器人自动按时播报天气

    springboot实现企业微信机器人自动按时播报天气 第一步搭建项目...这个没有什么好说的 配置: <dependency><groupId>org.apache.http ...

  7. python发微信提醒天气_通过Python发送天气信息给企业微信机器人

    一.添加机器人 原文链接:https://www.dqzboy.com 二.创文章来源(Source):浅时光博客建py脚本 #!/usr/bin/python3 # -*- coding: utf- ...

  8. 【企业微信机器人封装介绍文档】

    企业微信机器人封装介绍文档 概述 本文档介绍了一个功能强大的企业微信机器人封装,旨在简化企业微信机器人的使用和开发过程.该封装提供了以下主要功能: 支持发送PNG图片 支持发送文件 支持定时发送文本消 ...

  9. Prometheus+Grafana+企业微信机器人告警

    Prometheus+Grafana+企业微信机器人告警 开源监控和报警系统 Prometheus+Grafana+企业微信机器人告警 Prometheus+Grafana+企业微信机器人告警 1.P ...

最新文章

  1. 使用SqlBulkCopy进行数据大批量的迁移
  2. CVE-2017-5521: Bypassing Authentication on NETGEAR Routers(Netgear认证绕过漏洞)
  3. 腾讯offer是什么样子_记一次腾讯社招前端面试(已拿到offer入职)
  4. python之time模块和hashlib模块
  5. #4604. The kth maximum number(整体二分 + 树套树)
  6. Go 如何利用multipart/form-data实现文件的上传与下载
  7. [Web 前端] CSS篇之 4. position 和 display 的取值和各自的意思和用法
  8. 6. 以下耦合度中最松散的耦合是_什么是程序设计中的高内聚、低耦合?
  9. python -屏保
  10. python print return_对python中return和print的一些理解
  11. WebBrowser填充表单值的问题.
  12. 研究生课程笔记:软件包在流行病学中的应用(一)——PASS软件
  13. linux下删除带特殊符号的文件
  14. 推荐几个后台管理界面
  15. 生物化学《第一章概述》
  16. 你在项目中做过哪些安全防范措施?
  17. 计算机里多了一个硬盘q,电脑上多了个本地磁盘Q怎么回事
  18. 计算机属性资源管理器已停止工作,windows资源管理器已停止工作,教您windows资源管理器已停止工作如何解决...
  19. 在线客服系统解决方案:物流行业
  20. 【DataWhale学习】Day10~13-4章决策树——西瓜书学习摘录笔记

热门文章

  1. 计算机语言企业使用率,2019年十大企业级编程语言榜单
  2. Linux基础环境搭建(CentOS7)- 安装Flume
  3. 安卓模拟器安装教程_安卓模拟器爱奇艺青春有你2打榜助力教程
  4. AI 作画卖出300万高价;People.ai 融资2亿;NIPS 涉嫌色情侮辱女性;百度推出实时翻译...
  5. nginx应用:使用nginx进行蓝绿部署
  6. TPFS合作体系是啥?金融壹账通靠它治好了中小银行“开放”焦虑症
  7. 【小米AIoT开发者大会】雷军宣布小爱同学激活破亿,和宜家开启战略合作
  8. 买什么投影仪好?哪款家用投影仪又好又便宜
  9. 投影仪怎么选好坏?投影仪哪个品牌好
  10. 实验5:简单恐龙识别系统的产生式推理