SpringBoot对接飞书机器人

账号创建

复制代码
    本地是在电脑端,点击左上角的加号,选择创建群组,之后在对应群组页面的右上角打开设置,点击群机器人,添加机器人,选择下面这一个即可

点击创建机器人后可以获取到对应的 webhook 地址

签名校验 :如若不勾选此项,是没有加权限校验的实现,也就是说只要获取到 webhook 链接,谁都可以向这个群里发送消息,针对此情况可以开启群机器人的 权限校验,从这里开启,获取到秘钥之后,点击保存即可。


代码实现

1、添加配置

将 webhook 加到 application.yml (配置文件)中,然后用配置类来读取,将配置类交由 spring 管理:

yml 复制代码
feishu:  
  aiUrl: https://open.feishu.cn/open-apis/bot/v2/hook/
  secret:  
  signName: 来客资喽
java 复制代码
@Slf4j  
@Configuration  
@ConfigurationProperties(prefix = "feishu")  
@Data  
public class FeiShuClient {  
    private String aiUrl;  
    private String secret;  
    private String signName;  
  
    public void sendMsg(String notice) {  
        String timestamp = String.valueOf(System.currentTimeMillis() / 1000); // 当前时间戳,单位秒  
        String sign = calculateSignature(timestamp, secret);  
        Map<String,Object> json=new HashMap();  
        Map<String,Object> text=new HashMap();  
        text.put("text", "【" + signName + "】" + "企业名称:" + notice);  
        json.put("msg_type", "text");  
        json.put("content", text);  
        json.put("timestamp", timestamp);  
        json.put("sign", sign);  
        //发送post请求  
        String result = HttpRequest.post(this.aiUrl)  
                .body(JSON.toJSONString(json), "application/json;charset=UTF-8").execute()  
                .body();  
        log.info("feishu resp:{}", result);  
    }  
  
    private static String calculateSignature(String timestamp, String secret) {  
        try {  
            //把timestamp+"\n"+密钥当做签名字符串  
            String stringToSign = timestamp + "\n" + secret;  
            //使用HmacSHA256算法计算签名  
            Mac mac = Mac.getInstance("HmacSHA256");  
            mac.init(new SecretKeySpec(stringToSign.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));  
            byte[] signData = mac.doFinal(new byte[]{});  
            return Base64.getEncoder().encodeToString(signData);  
        } catch (Exception e) {  
            throw new RuntimeException("sign 计算异常");  
        }    }  
}

2、测试接口

将需要发送的消息,传递给接口,测试下 效果如下:

相关推荐
出门吃三碗饭2 小时前
机器人仿真: Isaac Lab 环境配置完整指南
机器人
光锥智能2 小时前
安克创新与飞书联合发布“安克 AI 录音豆” 手指可握仅重 10 克
人工智能·飞书
星期五不见面2 小时前
机器人学习!(二)ROS2-环境配置(6)2026/01/19
学习·机器人
风象南2 小时前
像 ChatGPT 一样丝滑:Spring Boot 如何实现大模型流式(Streaming)响应?
java·spring boot·后端
Mr.Winter`2 小时前
轨迹优化 | 微分动态规划DDP与迭代线性二次型调节器iLQR理论推导
人工智能·算法·机器人·自动驾驶·动态规划·ros·具身智能
Java程序员威哥2 小时前
Spring Boot 3.x 云原生终极适配:GraalVM 原生镜像构建 + Serverless 生产级部署(完整实战+最优模板)
java·开发语言·spring boot·后端·云原生·serverless·maven
qq_12498707532 小时前
基于微信小程序宠物服务系统(源码+论文+部署+安装)
java·spring boot·后端·微信小程序·小程序·毕业设计·宠物
码农三叔3 小时前
(2-2)人形机器人的总体架构与系统工程:系统工程方法论
架构·机器人·人形机器人
MC丶科9 小时前
【SpringBoot常见报错与解决方案】中文乱码?Spring Boot 统一解决前后端中文乱码问题(含 Postman 测试)!别再百度“加 UTF-8”了!
spring boot·后端·postman