java发送飞书消息卡片具体实现方法

 更新时间:2026年03月16日 10:35:42   作者:路边草随风  
这篇文章主要介绍了java发送飞书消息卡片具体实现方法的相关资料,Java通过飞书消息卡片API,可以高效解决传统消息推送方式的痛点,实现业务系统事件与飞书消息卡片之间的全流程闭环,需要的朋友可以参考下

一.背景

飞书(Lark)作为企业级协同办公平台,其消息卡片(富媒体消息)凭借 “结构化展示、交互性强、可视化程度高” 的特性,成为企业内部告警通知、业务审批、数据推送、流程提醒的核心载体。Java 作为企业级后端开发的主流语言,是支撑核心业务系统(如风控系统、订单系统、大数据平台)的核心技术栈,实现 “Java 发送飞书消息卡片” 的需求,源于传统飞书消息推送方式的痛点,以及企业对 “业务系统 - 协同办公” 高效联动、信息精准触达的核心诉求。

1.传统飞书消息推送的核心痛点

  1. 消息形式单一,信息传递效率低传统方式多通过飞书机器人发送纯文本 / 简单 markdown 消息,无法结构化展示复杂业务信息:例如风控系统触发异常告警时,仅能以 “XX 订单风控异常,金额 XX 元” 的文本形式推送,无法直观展示订单详情、异常指标、操作入口等关键信息;业务人员需跳转至业务系统才能查看完整内容,信息获取链路长、响应效率低。

  2. 无交互能力,无法闭环业务流程纯文本消息仅能实现 “信息告知”,无法承载交互操作:例如审批类消息无法直接在飞书内完成 “同意 / 驳回” 操作,需人工登录业务系统处理;数据推送类消息无法提供 “查看详情”“导出数据” 等快捷入口,导致 “消息推送 - 业务处理” 的流程割裂,增加人工操作成本。

  3. 适配企业级系统集成难企业核心业务系统(如金融交易系统、电商订单系统、大数据监控平台)多基于 Java 开发,传统飞书消息推送依赖手动配置机器人、编写简单脚本,无法无缝集成至 Java 业务系统的业务流程中:例如订单系统完成大额订单生成后,无法自动触发飞书消息卡片推送;大数据平台监控到任务失败时,需人工编写脚本推送告警,时效性差且易遗漏。

  4. 格式不规范,信息展示混乱手动推送飞书消息时,易因格式不统一导致信息展示混乱:例如不同业务线的告警消息卡片字段不一致、样式不统一,业务人员需花费额外时间理解信息;且无法根据接收人角色(如研发、运维、产品)定制消息卡片内容,信息过载或关键信息缺失问题突出。

  5. 缺乏权限与风控管控,合规风险高金融、政企等行业对消息推送的权限、审计要求严苛,传统方式无法管控 “谁发送了消息、发送了什么内容、接收人是谁”;且无法对敏感信息(如客户手机号、交易金额)进行脱敏处理,易引发数据泄露风险,难以满足等保、隐私保护等合规要求。

2.Java 发送飞书消息卡片的核心价值

Java 作为企业级开发语言,结合飞书开放平台提供的消息卡片 API,能高效解决传统方式的痛点,实现 “业务系统事件 - 飞书消息卡片 - 业务交互” 的全流程闭环,核心价值体现在:

  1. 结构化展示复杂业务信息,提升信息触达效率Java 可通过飞书消息卡片 API 构建结构化、可视化的卡片内容,将业务系统的复杂信息(如订单详情、告警指标、数据报表)以 “标题 + 字段 + 表格 + 图片” 的形式精准推送:例如大数据平台监控到 Spark 作业失败时,Java 程序可生成包含 “作业名称、失败时间、失败原因、日志链接、重启入口” 的消息卡片,业务人员无需跳转系统即可掌握核心信息,响应效率提升 80% 以上。

  2. 集成交互能力,闭环业务流程飞书消息卡片支持按钮、选择器等交互组件,Java 可在卡片中配置 “同意 / 驳回”“重启作业”“查看详情” 等操作按钮,并对接业务系统接口:例如审批类消息卡片的 “同意” 按钮点击后,Java 后端可接收飞书回调并自动完成业务系统的审批流程;告警卡片的 “重启作业” 按钮可直接触发大数据平台的作业重启接口,实现 “消息推送 - 操作执行” 的一站式闭环。

  3. 无缝集成企业级 Java 业务系统Java 可将飞书消息卡片推送逻辑封装为通用工具类 / 组件,嵌入核心业务系统的业务流程中,实现 “事件触发 - 自动推送”:例如订单系统基于 Spring Boot 开发,可在订单支付完成的业务逻辑后,直接调用消息卡片推送组件,自动向运营人员推送包含订单信息的卡片;大数据监控平台基于 Java 开发,可在检测到任务异常时,实时推送告警卡片至运维群,替代人工干预。

  4. 标准化与定制化结合,适配多场景需求Java 可封装通用的消息卡片模板(如告警模板、审批模板、数据推送模板),保证不同业务线的消息格式统一;同时支持根据接收人角色、业务场景动态调整卡片内容:例如向研发人员推送的告警卡片包含技术日志、堆栈信息,向管理人员推送的卡片仅展示核心指标和处理结果,避免信息过载。

  5. 精细化管控,满足合规诉求Java 程序可对接企业权限系统,在发送消息卡片前校验推送人员 / 应用的权限,仅允许授权角色推送敏感业务信息;同时对卡片中的敏感数据(如身份证号、银行卡号)进行自动脱敏处理;推送过程中记录审计日志(推送人、时间、内容、接收人),满足金融、政企等行业的合规审计要求。

3.典型应用场景

  1. 企业级告警通知:大数据平台、服务器监控系统、风控系统基于 Java 触发异常告警时,推送包含异常详情、操作入口的飞书消息卡片至运维 / 风控群,实现告警信息精准触达、快速响应。
  2. 业务流程审批:OA 系统、采购系统、合同系统等 Java 后端系统发起审批流程时,推送包含审批事项、附件、操作按钮的消息卡片至审批人飞书,支持飞书内直接完成审批操作,闭环审批流程。
  3. 核心业务数据推送:电商、金融行业的订单系统、交易系统将大额订单、核心交易数据以消息卡片形式推送至运营 / 管理人员飞书,直观展示业务关键指标,提升数据监控效率。
  4. 自动化运营提醒:物流系统、客户管理系统基于 Java 触发物流状态变更、客户跟进提醒时,推送包含快捷操作入口的消息卡片至对应员工飞书,降低运营人员操作成本。
  5. 大数据作业监控:Spark/Flink 作业平台(Java 开发)监控到作业失败、数据延迟等问题时,推送包含作业日志、重启按钮的消息卡片至研发群,实现作业故障快速定位与处理。

综上,Java 发送飞书消息卡片,是企业实现 “核心业务系统 - 飞书协同办公” 深度联动的关键路径:既解决了传统消息推送形式单一、流程割裂、集成难的痛点,又通过 Java 语言的企业级特性,保障了消息推送的稳定性、安全性与合规性,为企业提升办公效率、闭环业务流程、精准触达信息提供了高效的技术支撑。

二.具体实现

1.获取token

        String url = "https://open.feishu.cn/open-apis/auth/v3/tenant_access_token/internal";

        JSONObject json = new JSONObject();
            json.put("app_id", "");
            json.put("app_secret", "");

        Map<String, String> headers = new HashMap<>();

            headers.put("Content-Type", "application/json; charset=utf-8");


        String rs = HttpUtil.sendPost(url,json.toString());

        System.out.println(rs);

        String tenant_access_token = JSONObject.parseObject(rs).getString("tenant_access_token");

2.获取发送人的id

String url2 = "https://open.feishu.cn/open-apis/contact/v3/users/batch_get_id?user_id_type=open_id";

Map<String, String> headers2 = new HashMap<>();

     headers2.put("Content-Type", "application/json; charset=utf-8");
     headers2.put("Authorization","Bearer "+tenant_access_token);

JSONObject json2 = new JSONObject();
     json2.put("emails",new String[]{xxx"});
     json2.put("mobiles",new String[]{"xxx"});
     json2.put("include_resigned",true);


String rs2 = HttpUtil.sendPost(url2,json2.toString(),headers2);

 

String user_id = JSONObject.parseObject(rs2).getJSONObject("data").getJSONArray("user_list").getJSONObject(0).getString("user_id");

3.发送消息卡片

       String url3 = "https://open.feishu.cn/open-apis/im/v1/messages?receive_id_type=open_id";

        JSONArray arr = new JSONArray();

            JSONObject one = new JSONObject();
                one.put("oldConfig","旧配置测试01");
                one.put("newConfig","新配置测试02");
                one.put("operator","修改");

            arr.add(one);


        JSONObject variable = new JSONObject();
            variable.put("creator","xxx");
            variable.put("project","测试项目");
            variable.put("taskName","测试任务001");
            variable.put("reasonText","业务改造");
            variable.put("approvalTime","xxxxxx");

            variable.put("resources",arr);


        JSONObject templateData = new JSONObject();

            templateData.put("template_id","xxxxx");
            templateData.put("template_version_name","1.0.2");
            templateData.put("template_variable",variable);


        JSONObject template = new JSONObject();

            template.put("type","template");
            template.put("data",templateData);

        JSONObject json3 = new JSONObject();
            json3.put("receive_id",user_id);
            json3.put("msg_type","interactive");
            json3.put("content",template.toJSONString());


        String rs3 = HttpUtil.sendPost(url3,json3.toString(),headers2);

总结 

到此这篇关于java发送飞书消息卡片具体实现方法的文章就介绍到这了,更多相关java发送飞书消息卡片内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring AOP通知类型与实战示例讲解

    Spring AOP通知类型与实战示例讲解

    Spring AOP提供了五种通知类型:@Before、@After、@AfterReturning、@AfterThrowing和@Around,每种通知类型都有其特定的使用场景和实现方式,通过合理使用这些通知类型,可以实现各种横切关注点的模块化和解耦,感兴趣的朋友跟随小编一起看看吧
    2024-11-11
  • 一文带你掌握springBoot如何做到优雅停机的

    一文带你掌握springBoot如何做到优雅停机的

    在分布式系统中,服务的优雅停机(Graceful Shutdown)是确保业务连续性的重要机制,下面就跟随小编一起来深入了解下springBoot实现优雅停机的具体方式吧
    2025-04-04
  • java飞行棋实现思路

    java飞行棋实现思路

    这篇文章主要为大家详细介绍了java飞行棋的实现思路,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-09-09
  • nacos服务注册命名空间指定方式

    nacos服务注册命名空间指定方式

    文章介绍了Nacos服务注册命名空间的用途,以及如何创建和指定命名空间,命名空间用于隔离不同项目的服务和配置,避免冲突,通过在配置文件中指定命名空间ID,服务会注册到相应的命名空间中,这样可以更好地管理不同环境下的配置文件
    2024-12-12
  • Java数组队列及环形数组队列超详细讲解

    Java数组队列及环形数组队列超详细讲解

    队列是一个有序列表,可以用数组和链表来实现,队列有一个原则。即:先存入队列的数据要先取出,后存入的要后取出,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2022-09-09
  • 详解Java无需解压直接读取Zip文件和文件内容

    详解Java无需解压直接读取Zip文件和文件内容

    本篇文章主要介绍了详解Java无需解压直接读取Zip文件和文件内容,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-10-10
  • Javadoc 具体使用详解

    Javadoc 具体使用详解

    这篇文章主要介绍了Javadoc 具体使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • springboot中redis正确的使用详解

    springboot中redis正确的使用详解

    本文主要介绍了springboot中redis正确的使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • Mybatis Mapper中多参数方法不使用@param注解报错的解决

    Mybatis Mapper中多参数方法不使用@param注解报错的解决

    这篇文章主要介绍了Mybatis Mapper中多参数方法不使用@param注解报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教。
    2022-01-01
  • SSM项目的web.xml的DispatcherServlet爆红原因及解决方案

    SSM项目的web.xml的DispatcherServlet爆红原因及解决方案

    文章说明在Web项目配置中,web.xml中DispatcherServlet报红可能因路径错误或依赖版本问题,需手动调整路径并修改SpringMVC依赖版本为5.3.18,以解决依赖冲突和配置问题
    2025-08-08

最新评论