✨Feat: 实现简单消息发送

This commit is contained in:
2025-10-27 16:11:07 +08:00
parent 8b2d3a409c
commit 5426df2292
6 changed files with 102 additions and 12 deletions
+17
View File
@@ -16,6 +16,23 @@
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.larksuite.oapi</groupId>
<artifactId>oapi-sdk</artifactId>
<version>2.4.24</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
<properties>
@@ -1,11 +1,12 @@
package cn.hezhaohui.lark;
import cn.hezhaohui.lark.util.LarkUtil;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
public static void main(String[] args) throws Exception {
SpringApplication.run(Application.class, args);
}
}
@@ -0,0 +1,8 @@
package cn.hezhaohui.lark.constant;
public class AppConstant {
public final static String APP_ID = "cli_a875a60984b5500c";
public final static String APP_SECRET = "toAfmMddNEG9qWsYngs7wch0HwW4vAls";
public final static String APP_USER_OPEN_ID = "ou_9eb248881be923bad599f342c22a4e7a";
}
@@ -0,0 +1,54 @@
package cn.hezhaohui.lark.util;
import cn.hezhaohui.lark.constant.AppConstant;
import cn.hutool.core.util.IdUtil;
import cn.hutool.json.JSONUtil;
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;
public class LarkUtil {
// 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 sendText(String content) throws Exception {
// 构建client
Client client = Client.newBuilder(AppConstant.APP_ID, AppConstant.APP_SECRET).build();
// Json 包装
Map<String, String> text = new HashMap<>();
text.put("text", content);
String textJson = JSONUtil.toJsonStr(text);
// 创建请求对象
CreateMessageReq req = CreateMessageReq.newBuilder()
.receiveIdType("open_id")
.createMessageReqBody(CreateMessageReqBody.newBuilder()
.receiveId(AppConstant.APP_USER_OPEN_ID)
.msgType("text")
.content(textJson)
.uuid(IdUtil.randomUUID())
.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.jupiter.api.Test;
class LarkUtilTest {
@Test
void sendText() throws Exception {
LarkUtil.sendText("你好");
}
}
+9 -11
View File
@@ -21,24 +21,21 @@
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.2.2</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<artifactId>spring-boot-dependencies</artifactId>
<version>3.2.2</version>
<type>pom</type>
<scope>import</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>1.18.30</version>
</dependency>
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.9</version>
</dependency>
</dependencies>
</dependencyManagement>
<!-- 构建配置 -->
@@ -48,6 +45,7 @@
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>3.2.2</version>
</plugin>
</plugins>
</build>