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

点击创建机器人后可以获取到对应的 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、测试接口
将需要发送的消息,传递给接口,测试下 效果如下:
