参考链接

群机器人配置说明 - 接口文档 - 企业微信开发者中心

如有侵权,请通知博主删除

1.创建群

2.手机企业微信创建机器人

企业微信机器人助手实现消息群发_企业微信群发助手

记录Webhook后续用于发消息的链接

3.创建工具类

import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class WeChatUtils {
    // 企业微信机器人的Webhook地址
    private static final String webhookUrl = "https://xxx.xxx.xxx/cgi-bin/webhook/send?key=?";

    /**
     * 传入消息
     * @param message 消息 有固定格式
     */
    public static void sendMessage(String message) {
        try {
            // 初始化连接
            URL url = new URL(webhookUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("POST");
            connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
            connection.setDoOutput(true);
            // 发送消息
            try (OutputStream os = connection.getOutputStream()) {
                byte[] input = message.getBytes("utf-8");
                os.write(input, 0, input.length);
            }
            // 获取响应
            int responseCode = connection.getResponseCode();
            System.out.println("Response Code: " + responseCode);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

4.指定text,markdown格式

text和markdown都支持使用<@userId>来@指定用户 userId = 企业微信用户定义的别名

text传入参数案例(官网)

{
    "msgtype": "text",
    "text": {
        "content": "广州今日天气:29度,大部分多云,降雨概率:60%",
    		"mentioned_list":["wangqing","@all"],
    		"mentioned_mobile_list":["1380000XXXX","@all"]
    }
}

企业微信机器人助手实现消息群发_企业微信群发助手_02

markdown传入参数案例(官网)

{
    "msgtype": "markdown",
    "markdown": {
        "content": "实时新增用户反馈<font color=\"warning\">132例</font>,请相关同事注意。\n
         >类型:<font color=\"comment\">用户反馈</font>
         >普通用户反馈:<font color=\"comment\">117例</font>
         >VIP用户反馈:<font color=\"comment\">15例</font>"
    }
}

企业微信机器人助手实现消息群发_企业微信群发助手_03

企业微信机器人助手实现消息群发_java_04

5.制定对应的实体对象

import lombok.Data;

/**
 * 功能描述:微信发送信息模板公用父类
 *
 */
@Data
public class WeChatMessage {
    private String msgtype;
}
import lombok.Data;

import java.util.List;

/**
 * 功能描述:微信发送信息Text模板
 *
 */
@Data
public class WeChatTextMessage extends WeChatMessage {
    private Text text;

    public WeChatTextMessage() {
        super.setMsgtype("text");
    }

    @Data
    public static class Text {
        private String content;

        private List<String> mentioned_list;

        private List<String> mentioned_mobile_list;
    }
}
import lombok.Data;

import java.util.List;

/**
 * 功能描述:微信发送信息markdown模板
 *
 */
@Data
public class WeChatMarkdownMessage extends WeChatMessage {
    private Markdown markdown;

    public WeChatMarkdownMessage() {
        super.setMsgtype("markdown");
    }

    @Data
    public static class Markdown {
        private String content;
    }
}

6.调用发送的案例

import com.alibaba.fastjson.JSON;
import com.xpc.bean.WeChatMarkdownMessage;
import com.xpc.bean.WeChatTextMessage;
import com.xpc.tool.WeChatUtils;

import java.util.ArrayList;

/**
 * 功能描述:微信群机器人测试
 *
 */
public class WeChatTest {

	public static void main(String[] args) {
		sendTextMessage();
		sendMarkdownMessage();
	}

	private static void sendTextMessage() {
		// 测试TEXT文本格式
		WeChatTextMessage weChatTextMessage = new WeChatTextMessage();
		WeChatTextMessage.Text text = new WeChatTextMessage.Text();
		text.setContent("测试消息");
		ArrayList<String> mentionedList = new ArrayList<>();
		// 此处作用于别名
		mentionedList.add("?");
		mentionedList.add("@all");
		text.setMentioned_list(mentionedList);
		ArrayList<String> mentionedMobileList = new ArrayList<>();
		// 实名制手机号才可以使用
		mentionedMobileList.add("176xxxxxxxx");
		text.setMentioned_mobile_list(mentionedMobileList);
		weChatTextMessage.setText(text);
		String message = JSON.toJSONString(weChatTextMessage);
		WeChatUtils.sendMessage(message);
	}

	private static void sendMarkdownMessage() {
		// 测试MARKDOWN格式
		WeChatMarkdownMessage weChatMarkdownMessage = new WeChatMarkdownMessage();
		WeChatMarkdownMessage.Markdown markdown = new WeChatMarkdownMessage.Markdown();
		// 内容
		StringBuilder builder = new StringBuilder();
		builder.append("## 工序运行异常警告\n");
		builder.append(">生产单元:1#高炉\n");
		builder.append(">数据类型:高炉喷吹运行实绩\n");
		builder.append(">数据项目代码:SIN_GL03_PM03.T0057\n");
		builder.append(">数据项目名称:高炉喷煤量设定\n");
		builder.append(">数据采集点:槽下\n");
		builder.append(">上限值:100(kg) 下限值:10(kg)\n");
		builder.append(">数据异常值:<font color='warning'>**110**</font>(kg)\n");
		builder.append(">请相关负责人<@?>,<@?>,<@?>及时处理");
		markdown.setContent(builder.toString());
		weChatMarkdownMessage.setMarkdown(markdown);
		String message = JSON.toJSONString(weChatMarkdownMessage);
		WeChatUtils.sendMessage(message);
	}

}

企业微信机器人助手实现消息群发_java_05