参考链接
如有侵权,请通知博主删除
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"]
}
}
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>"
}
}
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);
}
}