最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

java通過釘釘機器人發(fā)消息的實現(xiàn)示例

 更新時間:2023年09月07日 15:21:07   作者:小非肥  
本文主要介紹了java通過釘釘機器人發(fā)消息的實現(xiàn)示例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

釘釘自定義機器人使用 加簽的配置 發(fā)送消息

注意:內(nèi)部群才可以創(chuàng)建自定義機器人
釘釘網(wǎng)址-自定義機器人創(chuàng)建

1、獲得的釘釘配置信息workhook和secret

//url路徑
    private String URL = "https://oapi.dingtalk.com/robot/send?access_token=08ebaa04f98f7faacbacd80fa879463d85cdccdd6cef184ef01bb5a8b6ae6f6c";
//加簽密鑰
    private String DINGDING_SECRET = "SEC27596efd776991b2f6786270fa59552459f64612b17adf377295669361af3fae";

2、配置加簽

配置路徑

    private String getSign() {
        Long timestamp = System.currentTimeMillis();
        String stringToSign = timestamp + "\n" + DINGDING_SECRET;
        Mac mac = null;
        String sign = null;
        try {
            mac = Mac.getInstance("HmacSHA256");
            mac.init(new SecretKeySpec(DINGDING_SECRET.getBytes("UTF-8"), "HmacSHA256"));
            byte[] signData = mac.doFinal(stringToSign.getBytes("UTF-8"));
            sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
        } catch (Exception e) {
            throw new IllegalArgumentException("加簽處理有誤");
        }
        return "&timestamp=" + timestamp + "&sign=" + sign;
    }

3、按照釘釘要求整理json數(shù)據(jù)結(jié)構(gòu)

如果phone為null則發(fā)送普通消息,不為空則發(fā)送給特定的人

   private JSONObject buildDingDingMessage(String phone, String message) {
        //2、按要求配置參數(shù)格式
        JSONObject json = new JSONObject();
        json.put("msgtype", "text");
        json.put("text", new JSONObject() {{
            put("content", message);
        }});
        if (!UtilString.isBlank(phone)) {
            ArrayList<String> list = new ArrayList<>();
            list.add(phone);
            json.put("at", new JSONObject() {{
                put("atMobiles", list.toArray());
            }});
        }
        return json;
    }
    @Override
    public void doSendMessage(String phone, String message) {
        //1、檢查數(shù)據(jù)
        if (UtilString.isBlank(message)) {
            throw new IllegalArgumentException("請輸入釘釘服務(wù)機器人要輸出的信息");
        }
        //2、配置釘釘信息
        JSONObject  json = buildDingDingMessage(phone, message);
        //3、請求
        String url = URL + getSign();
        String responseText = HttpClient.textBody(url)
                .json(json.toJSONString())
                .connectTimeout(60)
                .readTimeout(5 * 60)
                .writeTimeout(5 * 60)
                .asString();
//無錯則不發(fā)送日志消息
        JSONObject responseJson = JSON.parseObject(responseText);
        if (!responseJson.getString("errmsg").equals("ok")) {
            log.error(responseJson.getString("errmsg"));
        }
    }

到此這篇關(guān)于java通過釘釘機器人發(fā)消息的實現(xiàn)示例的文章就介紹到這了,更多相關(guān)java 釘釘機器人發(fā)消息內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java實現(xiàn)門禁系統(tǒng)

    java實現(xiàn)門禁系統(tǒng)

    這篇文章主要為大家詳細介紹了java實現(xiàn)門禁系統(tǒng)的實現(xiàn)方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • springboot2.x整合shiro權(quán)限框架的使用

    springboot2.x整合shiro權(quán)限框架的使用

    這篇文章主要介紹了springboot2.x整合shiro權(quán)限框架的使用,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-09-09
  • SpringBoot配置web訪問H2的方法

    SpringBoot配置web訪問H2的方法

    這篇文章主要介紹了SpringBoot配置web訪問H2的方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • SpringBoot如何實現(xiàn)分離資源文件并打包

    SpringBoot如何實現(xiàn)分離資源文件并打包

    這篇文章主要介紹了SpringBoot如何實現(xiàn)分離資源文件并打包,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-06-06
  • SpringBoot如何正確配置并運行Kafka

    SpringBoot如何正確配置并運行Kafka

    這篇文章主要介紹了SpringBoot如何正確配置并運行Kafka問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • java中HttpClient使用方法舉例詳解

    java中HttpClient使用方法舉例詳解

    這篇文章主要介紹了java中HttpClient使用方法的相關(guān)資料,HttpClient提供了發(fā)送HTTP請求和接收HTTP響應(yīng)的功能,簡化了HTTP通信的處理,減少了對外部庫的依賴,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-12-12
  • Java基礎(chǔ)篇之List集合舉例詳解

    Java基礎(chǔ)篇之List集合舉例詳解

    Java中的List集合是一種常用的數(shù)據(jù)結(jié)構(gòu),它提供了一種有序、可重復(fù)的元素集合,下面這篇文章主要給大家介紹了關(guān)于Java基礎(chǔ)篇之List集合的相關(guān)資料,文中通過代碼介紹的非常詳細,需要的朋友可以參考下
    2024-03-03
  • Java實現(xiàn)從字符串中找出數(shù)字字符串的方法小結(jié)

    Java實現(xiàn)從字符串中找出數(shù)字字符串的方法小結(jié)

    這篇文章主要介紹了Java實現(xiàn)從字符串中找出數(shù)字字符串的方法,結(jié)合實例形式總結(jié)分析了Java查找數(shù)字字符串的常用技巧,需要的朋友可以參考下
    2016-03-03
  • MySql多表查詢 事務(wù)及DCL

    MySql多表查詢 事務(wù)及DCL

    這篇文章主要介紹了MySql多表查詢 、事務(wù)、DCL的相關(guān)資料,需要的朋友可以參考下面文章內(nèi)容
    2021-09-09
  • Java Classloader機制用法代碼解析

    Java Classloader機制用法代碼解析

    這篇文章主要介紹了Java Classloader機制用法代碼解析,涉及JDK默認(rèn)ClassLoader,雙親委托模型,自定義ClassLoader等相關(guān)內(nèi)容,具有一定借鑒價值,需要的朋友可以參考下
    2018-01-01

最新評論

且末县| 于都县| 南溪县| 呼玛县| 东至县| 韶山市| 逊克县| 四会市| 理塘县| 遂宁市| 大安市| 尖扎县| 绥阳县| 高青县| 贞丰县| 巴林左旗| 泸定县| 永城市| 仁化县| 万安县| 会东县| 宜昌市| 寻乌县| 泸定县| 云和县| 班戈县| 桐城市| 富源县| 江都市| 汝南县| 日土县| 贵州省| 嵊泗县| 长阳| 繁峙县| 石渠县| 孟州市| 邵武市| 崇左市| 陇南市| 张家界市|