✨Feat: 实现文本消息发送

This commit is contained in:
2025-10-11 23:14:39 +08:00
parent c5e3bb47a8
commit 1d7e6a9d6e
6 changed files with 105 additions and 0 deletions
+8
View File
@@ -18,4 +18,12 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/com.larksuite.oapi/oapi-sdk -->
<dependency>
<groupId>com.larksuite.oapi</groupId>
<artifactId>oapi-sdk</artifactId>
<version>2.4.16</version>
</dependency>
</dependencies>
</project> </project>
@@ -0,0 +1,6 @@
package cn.hezhaohui.lark.constant;
public class AppConstant {
public static final String APP_ID = "cli_a860966d8eb69013";
public static final String APP_SECRET = "srCSYZQDaglgSkLSs5MGrfEsCW4fCQE2";
}
@@ -0,0 +1,5 @@
package cn.hezhaohui.lark.constant;
public class UserConstant {
public static final String USER_OPEN_ID = "ou_728072d781317a402a0ba6b6d30390a6";
}
@@ -0,0 +1,60 @@
package cn.hezhaohui.lark.util;
import cn.hezhaohui.lark.constant.AppConstant;
import cn.hezhaohui.lark.constant.UserConstant;
import com.google.gson.JsonParser;
import com.lark.oapi.Client;
import com.lark.oapi.core.utils.Jsons;
import com.lark.oapi.service.im.v1.model.*;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.Map;
import java.util.UUID;
public class Lark {
// SDK 使用文档:https://open.feishu.cn/document/uAjLw4CM/ukTMukTMukTM/server-side-sdk/java-sdk-guide/preparations
// 复制该 Demo 后, 需要将 "YOUR_APP_ID", "YOUR_APP_SECRET" 替换为自己应用的 APP_ID, APP_SECRET.
// 以下示例代码默认根据文档示例值填充,如果存在代码问题,请在 API 调试台填上相关必要参数后再复制代码使用
public static void sendTextMessage(String content) throws Exception {
// 构建client
Client client = Client.newBuilder(AppConstant.APP_ID, AppConstant.APP_SECRET).build();
// 生成uuid
String uuid = UUID.randomUUID().toString();
Map<String, String> messageContent = new HashMap<>();
messageContent.put("text", content);
String jsonContent = Jsons.DEFAULT.toJson(messageContent);
// 创建请求对象
CreateMessageReq req = CreateMessageReq.newBuilder()
.receiveIdType("open_id")
.createMessageReqBody(CreateMessageReqBody.newBuilder()
.receiveId(UserConstant.USER_OPEN_ID)
.msgType("text")
.content(jsonContent)
.uuid(uuid)
.build())
.build();
// 发起请求
CreateMessageResp resp = client.im().v1().message().create(req);
// 处理服务端错误
if(!resp.success()) {
System.out.println(String.format("code:%s,msg:%s,reqId:%s, resp:%s",
resp.getCode(), resp.getMsg(), resp.getRequestId(), Jsons.createGSON(true, false).toJson(JsonParser.parseString(new String(resp.getRawResponse().getBody(), StandardCharsets.UTF_8)))));
return;
}
// 业务数据处理
System.out.println(Jsons.DEFAULT.toJson(resp.getData()));
}
}
@@ -0,0 +1,12 @@
package cn.hezhaohui.lark.util;
import org.junit.Test;
public class LarkTest {
@Test
public void sendTextMessage() throws Exception {
Lark.sendTextMessage("测试消息");
}
}
+14
View File
@@ -9,6 +9,12 @@
<version>1.0-SNAPSHOT</version> <version>1.0-SNAPSHOT</version>
<packaging>pom</packaging> <packaging>pom</packaging>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.2</version>
</parent>
<modules> <modules>
<module>lark-sender</module> <module>lark-sender</module>
<module>gitea-webhook</module> <module>gitea-webhook</module>
@@ -20,4 +26,12 @@
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
</properties> </properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project> </project>