飞书机器人发文本消息

SDK

1、导入依赖

java 复制代码
<dependency>
  <groupId>com.larksuite.oapi</groupId>
  <artifactId>oapi-sdk</artifactId>
  <version>2.5.3</version>
</dependency>

2、开通权限

https://open.feishu.cn/document/faq/trouble-shooting/how-to-fix-the-99991672-error

java 复制代码
/**
     * 发送飞书文本消息
     *
     * @param receiveId     接收者ID(如 open_id、chat_id、email 等)
     * @param receiveIdType ID类型:open_id | chat_id | email | user_id
     * @param text          消息文本内容
     */
    public void sendFeiShuTextMessage(String receiveId, String receiveIdType, String text) {
        try {
            // 1. 构造消息内容 JSON:{"text":"xxx"}
            Map<String, String> content = new HashMap<>();
            content.put("text", text);
            String contentJson = JSONUtil.toJsonStr(content);

            // 2. 构建请求体
            CreateMessageReq req = CreateMessageReq.newBuilder().receiveIdType(receiveIdType)
                    .createMessageReqBody(CreateMessageReqBody.newBuilder()
                            .receiveId(receiveId)
                            .msgType("text")
                            .content(contentJson)
                            .uuid("uuid"))
                            .build())
                    .build();

            // 3. 调用 SDK 发送
            CreateMessageResp resp = feishuClient.im().v1().message().create(req);

            // 4. 处理响应
            if (resp.success()) {
                log.info("飞书文本消息发送成功, messageId: {}", resp.getData().getMessageId());
            } else {
                log.error("飞书消息发送失败 | code: {} | msg: {} | logId: {}",
                        resp.getCode(), resp.getMsg(), resp.getRequestId());
                throw new RuntimeException("飞书消息发送失败: " + resp.getMsg());
            }
        } catch (Exception e) {
            log.error("发送飞书消息异常", e);
            throw new RuntimeException("发送飞书消息异常", e);
        }
    }

webHook

1、新创建个飞书群,添加人员和机器人

2、获得webhook地址

复制代码
https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx
java 复制代码
 /**
     * 发送飞书文本消息
     *
     * @param text 消息文本内容
     */
    public void sendFeiShuTextMessage(String text) {
        try {
            if (StringUtils.isBlank(feishuWebhookUrl)) {
                log.warn("飞书webhook地址未配置,无法发送消息");
                return;
            }

            // 构建飞书消息payload
            JSONObject payload = new JSONObject();

            // 设置消息类型为文本
            payload.set("msg_type", "text");

            // 构建消息内容
            JSONObject textContent = new JSONObject();
            textContent.set("text", text);
            payload.set("content", textContent);

            log.info("发送飞书消息,webhook地址:{}, 消息内容:{}", feishuWebhookUrl, payload.toStringPretty());

            // 调用飞书webhook接口
            String response = HttpUtil.post(feishuWebhookUrl, payload.toString());
            log.info("飞书消息发送成功,响应结果:{}", response);

            JSONObject responseObj = JSONUtil.parseObj(response);
            Integer code = responseObj.getInt("code");
            if (code != null && code != 0) {
                log.error("飞书消息发送失败,错误代码:{}, 错误信息:{}", code, responseObj.getStr("msg"));
            }
        } catch (Exception e) {
            log.error("发送飞书消息异常,消息内容:{}", text, e);
        }
    }
相关推荐
wuminyu29 分钟前
Java字节码学习总结:字节码如何加载、解析和执行
java·linux·c语言·jvm·c++
Flynn Liang1 小时前
大模型怎么自己调函数?Spring AI 2.0 Tool Calling 自动循环原理 + 完整时序图
java·人工智能·spring·agent·函数调用·springai·toolcalling
PedroQue991 小时前
0.8.2 新增 backFallback 配置,无 tabbar 页返回无忧
前端·uni-app
淡漠的蓝精灵2 小时前
web.py:一个简单到极致的 Python Web 框架
开发语言·前端·python·其他
乌暮2 小时前
请求进门先安检:Spring 拦截器与统一功能实战指南
java·开发语言·后端·学习·spring
学长毕设2 小时前
基于SpringBoot的烘焙商品商品系统-附源码
java·spring boot·后端
开开心心就好2 小时前
竖式除法出题工具,整除余数混合模式
运维·服务器·前端·javascript·ocr·perl·1024程序员节
起个名字费劲死了2 小时前
Halcon学习一:骰子识别
前端·python·学习
大江东去浪淘尽千古风流人物2 小时前
【HexVIO】DSP卸载双目惯性VIO:Hexagon向量化前端与单帧融合调度深度解析
前端·状态模式·slam·dsp·vio·hexagon·移动端加速
其实防守也摸鱼2 小时前
Chrome 扩展安全攻防实录:从攻击面到防御实践
开发语言·前端·网络·chrome·安全·web安全·php