feat: 通知
This commit is contained in:
parent
82536d2ff1
commit
94a8a0c455
@ -1,6 +1,8 @@
|
|||||||
import com.pnkx.common.notify.FeishuISysNotify;
|
import com.pnkx.common.notify.FeishuISysNotify;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* NotifyTest
|
* NotifyTest
|
||||||
*
|
*
|
||||||
@ -13,6 +15,6 @@ public class NotifyTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void notifyTest() {
|
public void notifyTest() {
|
||||||
FeishuISysNotify.sendNotification("测试通知");
|
FeishuISysNotify.sendNotification("您有待办", "/todo");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.pnkx.common.notify;
|
package com.pnkx.common.notify;
|
||||||
|
|
||||||
|
import com.pnkx.common.utils.StringUtils;
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
||||||
@ -24,10 +25,10 @@ public class FeishuISysNotify {
|
|||||||
// 飞书机器人的webhook地址
|
// 飞书机器人的webhook地址
|
||||||
private static final String webhookUrl = "https://open.feishu.cn/open-apis/bot/v2/hook/ae03114d-aa0d-4348-b12e-9bd7e2911399";
|
private static final String webhookUrl = "https://open.feishu.cn/open-apis/bot/v2/hook/ae03114d-aa0d-4348-b12e-9bd7e2911399";
|
||||||
|
|
||||||
public static void sendNotification(String message) {
|
public static void sendNotification(String message, String link) {
|
||||||
try {
|
try {
|
||||||
URL url = new URL(webhookUrl);
|
URL url = new URL(webhookUrl);
|
||||||
HttpURLConnection connection = getHttpURLConnection(message, url);
|
HttpURLConnection connection = getHttpURLConnection(message, link, url);
|
||||||
|
|
||||||
int responseCode = connection.getResponseCode();
|
int responseCode = connection.getResponseCode();
|
||||||
if (responseCode == HttpURLConnection.HTTP_OK) {
|
if (responseCode == HttpURLConnection.HTTP_OK) {
|
||||||
@ -43,21 +44,62 @@ public class FeishuISysNotify {
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取HttpURLConnection
|
* 获取HttpURLConnection
|
||||||
|
*
|
||||||
* @param message 通知内容
|
* @param message 通知内容
|
||||||
|
* @param link 超链接地址
|
||||||
* @param url webhook地址
|
* @param url webhook地址
|
||||||
* @return HttpURLConnection
|
* @return HttpURLConnection
|
||||||
* @throws IOException 异常
|
* @throws IOException 异常
|
||||||
*/
|
*/
|
||||||
private static HttpURLConnection getHttpURLConnection(String message, URL url) throws IOException {
|
private static HttpURLConnection getHttpURLConnection(String message, String link, URL url) throws IOException {
|
||||||
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
||||||
connection.setRequestMethod("POST");
|
connection.setRequestMethod("POST");
|
||||||
connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
|
connection.setRequestProperty("Content-Type", "application/json; charset=utf-8");
|
||||||
connection.setDoOutput(true);
|
connection.setDoOutput(true);
|
||||||
|
|
||||||
String jsonInputString = "{\"msg_type\":\"text\",\"content\":{\"text\":\"" + message + "\"}}";
|
StringBuilder jsonInputString = new StringBuilder();
|
||||||
|
jsonInputString.append("{\n" +
|
||||||
|
" \"msg_type\": \"interactive\",\n" +
|
||||||
|
" \"card\": {\n" +
|
||||||
|
" \"elements\": [\n" +
|
||||||
|
" {\n" +
|
||||||
|
" \"tag\": \"div\",\n" +
|
||||||
|
" \"text\": {\n" +
|
||||||
|
" \"content\": \"" + message + "\",\n" +
|
||||||
|
" \"tag\": \"lark_md\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n");
|
||||||
|
if (StringUtils.isNotEmpty(link)) {
|
||||||
|
jsonInputString.append(", {\n" +
|
||||||
|
" \"actions\": [\n" +
|
||||||
|
" {\n" +
|
||||||
|
" \"tag\": \"button\",\n" +
|
||||||
|
" \"text\": {\n" +
|
||||||
|
" \"content\": \"详情查看\",\n" +
|
||||||
|
" \"tag\": \"lark_md\"\n" +
|
||||||
|
" },\n" +
|
||||||
|
" \"url\": \"https://admin.pnkx.top:8" + link + "\",\n" +
|
||||||
|
" \"type\": \"default\",\n" +
|
||||||
|
" \"value\": {\n" +
|
||||||
|
" \n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
" ],\n" +
|
||||||
|
" \"tag\": \"action\"\n" +
|
||||||
|
" }\n");
|
||||||
|
}
|
||||||
|
jsonInputString.append(" ],\n" +
|
||||||
|
" \"header\": {\n" +
|
||||||
|
" \"title\": {\n" +
|
||||||
|
" \"content\": \"【Pei你看雪博客】系统通知\",\n" +
|
||||||
|
" \"tag\": \"plain_text\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
" }\n" +
|
||||||
|
"}");
|
||||||
|
logger.info("飞书通知内容:{}", jsonInputString);
|
||||||
try (OutputStream os = connection.getOutputStream()) {
|
try (OutputStream os = connection.getOutputStream()) {
|
||||||
byte[] input = jsonInputString.getBytes(StandardCharsets.UTF_8);
|
byte[] input = jsonInputString.toString().getBytes(StandardCharsets.UTF_8);
|
||||||
os.write(input, 0, input.length);
|
os.write(input, 0, input.length);
|
||||||
}
|
}
|
||||||
return connection;
|
return connection;
|
||||||
|
Loading…
Reference in New Issue
Block a user