企业微信机器人自动消息发送webhook接入代码

240 阅读2分钟

主要代码类如下

package com.test.common;

import java.io.IOException; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map;

import org.apache.http.HttpResponse; import org.apache.http.client.ClientProtocolException; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.StringEntity; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.impl.client.HttpClients; import org.json.JSONObject;

/*

  • 文件名:com.test.common;.SendRobotMsgUtils.java
  • 简述:TODO
  • 详述:
  • 新建时间:2022年5月2日 下午12:31:41
  • 修改内容:[新增]
  • 修改时间:2022年5月2日 下午12:31:41
  • 版本:1.0

*/ public class SendRobotMsgUtils {

@SuppressWarnings({ "rawtypes", "unchecked" })
public boolean wechatRobotTxtMsg(String webhookUrl,String msgContent,List<String> mentioned_mobile_list) {
	boolean falg=false;
	//webhook地址 
	String msgtype="text";
    HttpResponse response=null;
    try {
    	if(webhookUrl!=null&&msgContent!=null) {
    	HttpPost httpPost=new HttpPost(webhookUrl);
    	CloseableHttpClient httpclient=HttpClients.createDefault();
    	httpPost.setHeader("Content-Type", "application/json; charset=utf-8");
    	Map<String,Object> param=new HashMap();
    	param.put("msgtype",msgtype);
    	Map<String,Object> param_msg=new HashMap();
    	param_msg.put("content", msgContent);
    	if(mentioned_mobile_list!=null&&mentioned_mobile_list.size()>0) {
    		param_msg.put("mentioned_mobile_list", mentioned_mobile_list);
    	}
    	//封装消息体
    	param.put(msgtype, param_msg);
    	String txtmsg=JSONObject.valueToString(param);
    	System.out.println("*************执行前txtmsg:"+txtmsg);
    	StringEntity entity = new StringEntity(txtmsg, "utf-8");
    	httpPost.setEntity(entity);
    	System.out.println("*************执行前:"+httpPost.toString());
		response=httpclient.execute(httpPost);
		if(response!=null&&response.getStatusLine()!=null&&response.getStatusLine().getStatusCode()==200) {
			String responseStr=response.getEntity().toString();
			falg=true;
			System.out.println("*************执行结果:"+responseStr);
		}
		}else {
			System.out.println("*************输入参数为空********************************");
		}
	} catch (ClientProtocolException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
	return falg;
}

@SuppressWarnings({ "rawtypes", "unchecked" })
public boolean wechatRobotMarkdownMsg(String webhookUrl,String msgContent,List<String> mentioned_mobile_list) {
	boolean falg=false;
	//webhook地址 
	String msgtype="markdown";
    HttpResponse response=null;
    try {
    	if(webhookUrl!=null&&msgContent!=null) {
    	HttpPost httpPost=new HttpPost(webhookUrl);
    	CloseableHttpClient httpclient=HttpClients.createDefault();
    	httpPost.setHeader("Content-Type", "application/json; charset=utf-8");
    	Map<String,Object> param=new HashMap();
    	param.put("msgtype",msgtype);
    	Map<String,Object> param_msg=new HashMap();
    	param_msg.put("content", msgContent);
    	if(mentioned_mobile_list!=null) {
    		param_msg.put("mentioned_mobile_list", mentioned_mobile_list);
    	}
    	//封装消息体
    	param.put(msgtype, param_msg);
    	String txtmsg=JSONObject.valueToString(param);
    	System.out.println("*************执行前txtmsg:"+txtmsg);
    	StringEntity entity = new StringEntity(txtmsg, "utf-8");
    	httpPost.setEntity(entity);
    	System.out.println("*************执行前:"+httpPost.toString());
		response=httpclient.execute(httpPost);
		if(response!=null&&response.getStatusLine()!=null&&response.getStatusLine().getStatusCode()==200) {
			String responseStr=response.getEntity().toString();
			falg=true;
			System.out.println("*************执行结果:"+responseStr);
		}
		}else {
			System.out.println("*************输入参数为空********************************");
		}
	} catch (ClientProtocolException e) {
		e.printStackTrace();
	} catch (IOException e) {
		e.printStackTrace();
	}
	return falg;
}


public static void main(String[] args) {
	SendRobotMsgUtils srmu=new SendRobotMsgUtils();
	SimpleDateFormat sdf =new SimpleDateFormat("yyyy-MM-dd HH:mm:SSS");
	String nowstr=sdf.format(new Date());
	String webhookUrl="https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=c17661d0c2e6";
	String msgContent="监控机器人-普通文本消息\n消息时间:"+nowstr+";\n交易日期+支付渠道+渠道笔数+当日总笔数\n"
			+ "你们所有人可以关闭此群消息!!!";
	List<String> mlist=new ArrayList<String>();
    mlist.add("@all");
    mlist.add("18688888888");

// srmu.wechatRobotTxtMsg(webhookUrl,msgContent,mlist); String msgmkContent= "

监控名称

\r\n" + " <tr style="border: 3px ;border-color: black;">\r\n" + " <th width="25%">编号\r\n" + " <th width="25%">用户名\r\n" + " <th width="25%">姓名\r\n" + " <th width="25%">联系电话\r\n" + " \r\n" + " \r\n" + " \r\n" + " <td style="border: 3px ;border-color: black;">01\r\n" + " 张三\r\n" + " 姓名\r\n" + " 18688888888\r\n" + " \r\n" + "\r\n"; srmu.wechatRobotMarkdownMsg(webhookUrl, msgmkContent, mlist);

}

} 实际开发完成的功能效果可以访问:www.onekbit.com/wechatrobot… 体验使用。

file

使用微信机器人定时群发消息:

file

本文由博客一文多发平台 OpenWrite 发布!