首先新建钉钉群,并新增机器人
官方建议三种安全设置方式必须选择一种:
我们这里选择加签,需要设置机器人:
相关代码如下:
//密钥,机器人安全设置页面,加签一栏下面显示的SEC开头的字符串。
String secret = "xxx";
//Webhook地址中的access_token
String token = "xxx";
@Override
public String context() {
String value = "99";
String context = String.format("xxxx日报\r\n" +
"\r\n" +
"当日营收%s万元。。此处内容省略",
value
);
return context;
}
@Override
public String messageGroup() throws Exception {
//获取发送内容
String context = this.context();
//签名认证
Long timestamp = System.currentTimeMillis();
String stringToSign = timestamp + "\n" + secret;
Mac mac = Mac.getInstance("HmacSHA256");
mac.init(new SecretKeySpec(secret.getBytes("UTF-8"), "HmacSHA256"));
byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/robot/send?access_token=" + token + "×tamp=" + timestamp + "&sign=" + sign);
OapiRobotSendRequest request = new OapiRobotSendRequest();
// 独立跳转ActionCard类型
request.setMsgtype("actionCard");
OapiRobotSendRequest.Actioncard actioncard = new OapiRobotSendRequest.Actioncard();
actioncard.setTitle("xx项目");
//图文
actioncard.setText("![screenshot](https://xxxx.com/temp/banner%20%282%29.png)" + context);
actioncard.setSingleTitle("查看详情");
//设置跳转地址
actioncard.setSingleURL("https://xxxx");
request.setActionCard(actioncard);
client.execute(request);
return "";
}
最终实现效果如下: