当前位置:首页 » 《随便一记》 » 正文

java通过webhook给飞书发送群消息

27 人参与  2024年11月04日 09:20  分类 : 《随便一记》  评论

点击全文阅读


现在使用飞书的人越来越多了,飞书有一个最大的好处,可以使用webhook简便的发送群消息。而在工作中,也经常会因为一些运维方面的工作,需要给飞书发送群消息,来实时提醒相关负责人,及时处理工作。

一、先看一下效果吧:

最后有整个项目代码下载

二、飞书创建群

三、java通过webhook发飞书发送消息

通过上一步,已经获取到如下信息(根据实际情况复制出来,后面会用到):

webhook地址:https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxx

签名校验:xxxxxxx

上面两个获取到了,下面就是java发送了

1、bootstrap.yml中配置如下:

spring:  application:    name: baseserver:  port: 9080  servlet:    context-path: /feishu:  aiUrl: https://open.feishu.cn/open-apis/bot/v2/hook/xxxxxxxxx #飞书机器人通知  secret: xxxxxxxxxxxxxxxx  signName: 基础平台

2、controller代码

package com.ck.controller;import com.ck.config.FeiShuAiClient;import com.ck.service.TestService;import io.swagger.annotations.Api;import io.swagger.annotations.ApiOperation;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.web.bind.annotation.*;@RestController@RequestMapping("/test")@Api(tags = "TestController", description = "测试")public class TestController {    private static final Logger logger = LoggerFactory.getLogger(TestController.class);    @Autowired    private TestService testService;    @Autowired    private FeiShuAiClient feiShuAiClient;    @GetMapping("/send")    @ApiOperation("发送内空")    public String find(String name) {        name="当前发送内容:"+name;        feiShuAiClient.sendMsg(name);        return "发送成功";    }}

3、发送飞书代码

 /**     * 发送结果     * @param content     */    public void sendMsg(String content){        content="【"+signName+"】"+content;        Long timestamp = getTimestamp();        String sign = Sign(timestamp);        FeiShuContentVo contentVo = new FeiShuContentVo(content);        FeiShuAiVo aiVo = new FeiShuAiVo();        aiVo.setTimestamp(timestamp.toString());        aiVo.setSign(sign);        aiVo.setMsg_type("text");        aiVo.setContent(contentVo);        String paramJson = GsonUtils.toJson(aiVo);        String result = doPost(aiUrl,paramJson);        log.info("飞书发送内容:"+content+",发送结果:"+result);    }    public String genSign(String secret, long timestamp) {        //把timestamp+"\n"+密钥当做签名字符串        String stringToSign = timestamp + "\n" + secret;        //使用HmacSHA256算法计算签名        Mac mac = null;        try {            mac = Mac.getInstance("HmacSHA256");            mac.init(new SecretKeySpec(stringToSign.getBytes(StandardCharsets.UTF_8), "HmacSHA256"));            byte[] signData = mac.doFinal(new byte[]{});            return new String(Base64.encodeBase64(signData));        } catch (Exception e) {            e.printStackTrace();        }        return null;    }

四、验证

五:代码下载地址:百度网盘 请输入提取码

通过百度网盘分享的文件:send-feishu-msg
链接:https://pan.baidu.com/s/1Dlyy64Tqwer8sSJu7vJGgQ?pwd=yv0l 
提取码:yv0l


点击全文阅读


本文链接:http://zhangshiyu.com/post/182102.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1