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、测试接口

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

相关推荐
Urbano2 小时前
模板机选购全维度科普:不止做服装,扫地机器人拖布批量量产品牌选型指南
机器人
爱敲代码的小鱼3 小时前
springboot原理篇:
java·spring boot·spring
Agilex松灵机器人3 小时前
UMR × NAVIS:移动机器人行业级通用一体化底盘与3D导航解决方案
人工智能·3d·机器人·ros·slam·vla·松灵机器人
默默敲代码的徐哥儿3 小时前
八股文整理——后端
java·开发语言·spring boot·后端·学习
牧小七3 小时前
宠物管理系统2026
spring boot
名字还没想好☜4 小时前
Spring Boot 全局异常处理:@ControllerAdvice 实战
java·spring boot·后端·spring·异常处理
山东穆柯传感器5 小时前
雷达尺寸重量受限,车顶或机器人安装有小型化版本吗
机器人·雷达
宠友信息5 小时前
Redis 内容社区源码架构优化与即时通讯数据一致性处理
spring boot·后端·websocket·mysql·uni-app
hdsoft_huge6 小时前
SpringBoot系列06:RESTful接口开发,请求参数接收、全局跨域CORS完整配置
java·spring boot
白白白飘6 小时前
【9】Langchain实战案例:构建一个聊天机器人
microsoft·langchain·机器人