欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Java利用釘釘機(jī)器人實現(xiàn)發(fā)送群消息

 更新時間:2022年09月02日 11:14:50   作者:共飲一杯無  
這篇文章主要為大家詳細(xì)介紹了Java語言如何通過釘釘機(jī)器人發(fā)送群消息通知,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解一下

添加群機(jī)器人

可以查看這篇文章:添加機(jī)器人到釘釘群 使用命令行工具curl快速驗證自定義機(jī)器人是否可以正常工作??梢允褂萌缦旅?,把對應(yīng)的鏈接調(diào)整成對應(yīng)群的webhook地址即可。

curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
-H 'Content-Type: application/json' \ 
-d '{"msgtype": "text","text": {"content":"嗨,我來啦"}}'

Java請求示例

設(shè)置如下方法進(jìn)行消息通知

    /**
     * 通知消息發(fā)送到群聊
     * @param webhook 釘釘機(jī)器人地址(配置機(jī)器人的webhook)
     * @param isAtAll 是否通知所有人
     * @param mobileList 通知具體人的手機(jī)號碼列表
     * @param content 消息內(nèi)容
     */
    public static void sendMsgToGroupChat(String webhook,boolean isAtAll,List<String> mobileList,String content){
        try {
            //組裝請求內(nèi)容
            String reqStr = buildReqStr(content, isAtAll, mobileList);
            //推送消息(http請求)
            String result = HttpUtil.post(webhook, reqStr);
            log.info("通知響應(yīng)結(jié)果:{}",result);
        }catch (Exception e){
            log.error("webhook通知失敗",e);
        }
    }
    
    /**
     * 組裝請求報文(Map封裝)
     * @param content 通知內(nèi)容
     * @param isAtAll 是否@所有人
     * @param mobileList 通知具體人的手機(jī)號碼
     * @return
     */
    private static String buildReqStr(String content, boolean isAtAll, List mobileList) {

        //消息內(nèi)容
        Map contentMap = Maps.newHashMap();
        contentMap.put("content", content);

        //通知人
        Map atMap = Maps.newHashMap();
        //1.是否通知所有人
        atMap.put("isAtAll", isAtAll);
        //2.通知具體人的手機(jī)號碼列表
        atMap.put("atMobiles", mobileList);

        Map reqMap = Maps.newHashMap();
        reqMap.put("msgtype", "text");
        reqMap.put("text", contentMap);
        reqMap.put("at", atMap);

        return JSON.toJSONString(reqMap);

    }
    
    /**
     * 獲取通知消息
     * @return
     */
    private static String getContent() {
        //釘釘機(jī)器人消息內(nèi)容
        String content;
        //通過轉(zhuǎn)碼網(wǎng)站http://tool.chinaz.com/Tools/unicode.aspx
        // 選擇中文轉(zhuǎn)Unicode把釘釘表情轉(zhuǎn)換成unicode編碼,也可以直接用表情對應(yīng)的中文設(shè)置
        String milkyTea = "過來請我喝奶茶[奶茶][流鼻血][流鼻血]\u005b\u6d41\u9f3b\u8840\u005d";
        String NEWLINE = "\n";
        StringBuffer sb = new StringBuffer();
        sb.append("小哥哥,你好!")
                .append(NEWLINE)
                .append(milkyTea);
        content = sb.toString();
        return content;
    }

通過main函數(shù)執(zhí)行調(diào)用

    public static void main(String[] args) throws ApiException {
        //把webhook設(shè)置成對應(yīng)群的即可
        String webhook = "https://oapi.dingtalk.com/robot/send?access_token=xxx";
        String content = getContent();
        ArrayList<String> mobileList = Lists.newArrayList();
		sendMsgToGroupChat(webhook,false,mobileList,content);
    }

可以看到如下通知效果:

添加通知人后效果如下:

官方SDK請求示例

如果只是為了發(fā)起一個簡單的消息通知上述動態(tài)配置后足夠使用,要使用更多消息類型推薦使用官方SDK進(jìn)行消息發(fā)送,畢竟官方進(jìn)行了一層封裝,使用起來會更方便些。

pom引入官方SDK

        <dependency>
            <groupId>com.aliyun</groupId>
            <artifactId>alibaba-dingtalk-service-sdk</artifactId>
            <version>2.0.0</version>
        </dependency>

群消息通知方法

可以通過如下案例實現(xiàn)對應(yīng)消息的通知。自定義機(jī)器人支持文本 (text)、鏈接 (link)、markdown(markdown)、ActionCard、FeedCard消息類型。

 /**
     * 通知SDK消息發(fā)送到群聊
     * @param webhook 釘釘機(jī)器人地址(配置機(jī)器人的webhook)
     *
     */
    public static void sendMsgToGroupChatSDK(String webhook) throws ApiException {
        DingTalkClient client = new DefaultDingTalkClient(webhook);
        OapiRobotSendRequest request = new OapiRobotSendRequest();
        //普通文本消息
        request.setMsgtype("text");
        OapiRobotSendRequest.Text text = new OapiRobotSendRequest.Text();
        text.setContent("你好,測試文本消息");
        request.setText(text);
        OapiRobotSendRequest.At at = new OapiRobotSendRequest.At();
        at.setAtMobiles(Arrays.asList("176xxx"));
        // isAtAll類型如果不為Boolean,請升級至最新SDK
        at.setIsAtAll(true);
        at.setAtUserIds(Arrays.asList("109929","32099"));
        request.setAt(at);

        //md格式消息
        request.setMsgtype("markdown");
        OapiRobotSendRequest.Markdown markdown = new OapiRobotSendRequest.Markdown();
        markdown.setTitle("杭州天氣");
        markdown.setText("#### 杭州天氣 @156xxxx8827\n" +
                "> 9度,西北風(fēng)1級,空氣良89,相對溫度73%\n\n" +
                "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n"  +
                "> ###### 10點20分發(fā)布 [天氣](http://www.thinkpage.cn/) \n");
        request.setMarkdown(markdown);
      
        //鏈接
        request.setMsgtype("link");
        OapiRobotSendRequest.Link link = new OapiRobotSendRequest.Link();
        link.setMessageUrl("https://blog.csdn.net/qq_35427589");
        link.setPicUrl("");
        link.setTitle("時代的火車向前開");
        link.setText("這個即將發(fā)布的新版本,創(chuàng)始人xx稱它為紅樹林。而在此之前,每當(dāng)面臨重大升級,產(chǎn)品經(jīng)理們都會取一個應(yīng)景的代號,這一次,為什么是紅樹林");
        request.setLink(link);

        OapiRobotSendResponse response = client.execute(request);
        log.info("執(zhí)行結(jié)果回執(zhí){}",JSON.toJSONString(response));
    }

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

相關(guān)文章

  • Java編程BigDecimal用法實例分享

    Java編程BigDecimal用法實例分享

    這篇文章主要介紹了Java編程BigDecimal用法實例分享,具有一定參考價值,需要的朋友可以了解下。
    2017-11-11
  • 用C++實現(xiàn)求N!中末尾0的個數(shù)的方法詳解

    用C++實現(xiàn)求N!中末尾0的個數(shù)的方法詳解

    這篇文章主要介紹了用C++實現(xiàn)求N!中末尾0的個數(shù)的方法詳解,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-07-07
  • 為了多次讀取ServletInputStream引發(fā)的一系列問題

    為了多次讀取ServletInputStream引發(fā)的一系列問題

    這篇文章主要介紹了為了多次讀取ServletInputStream引發(fā)的一系列問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • Spring RestTemplate的使用與踩坑

    Spring RestTemplate的使用與踩坑

    RestTemplate是一個執(zhí)行HTTP請求的同步阻塞式工具類,它僅僅只是在HTTP客戶端庫基礎(chǔ)上,封裝了更加簡單易用的模板方法API,方便程序員利用已提供的模板方法發(fā)起網(wǎng)絡(luò)請求和處理,能很大程度上提升我們的開發(fā)效率
    2023-02-02
  • java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的

    java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的

    這篇文章主要介紹了java 進(jìn)程是如何在Linux服務(wù)器上進(jìn)行內(nèi)存分配的,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2020-11-11
  • Java正則表達(dá)式匹配字符串并提取中間值的方法實例

    Java正則表達(dá)式匹配字符串并提取中間值的方法實例

    正則表達(dá)式常用于字符串處理、表單驗證等場合,實用高效,下面這篇文章主要給大家介紹了關(guān)于Java正則表達(dá)式匹配字符串并提取中間值的相關(guān)資料,需要的朋友可以參考下
    2022-06-06
  • Java中HashMap集合的6種遍歷方式詳解

    Java中HashMap集合的6種遍歷方式詳解

    這篇文章主要介紹了Java中HashMap集合的6種遍歷方式詳解,HashMap?基于哈希表的?Map?接口實現(xiàn),是以?key-value?存儲形式存在,即主要用來存放鍵值對,HashMap?的實現(xiàn)不是同步的,這意味著它不是線程安全的,我們來看一下其遍歷方式,需要的朋友可以參考下
    2023-12-12
  • idea編譯報錯-代碼沒問題IDEA編譯不通過的處理方案

    idea編譯報錯-代碼沒問題IDEA編譯不通過的處理方案

    這篇文章主要介紹了idea編譯報錯-代碼沒問題IDEA編譯不通過的問題及解決方案,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教
    2023-12-12
  • Java十分鐘精通集合的使用與原理下篇

    Java十分鐘精通集合的使用與原理下篇

    這章就對上一章的集合進(jìn)行代碼操作,去學(xué)習(xí)如果創(chuàng)建集合,以及對集合數(shù)據(jù)的處理,下面跟小編一起來看看吧
    2022-03-03
  • Java經(jīng)驗點滴:處理沒有被捕獲的異常

    Java經(jīng)驗點滴:處理沒有被捕獲的異常

    Java經(jīng)驗點滴:處理沒有被捕獲的異常...
    2006-12-12

最新評論