釘釘機器人發送折線圖卡片 工具類代碼

釘釘機器人 “創建并投放卡片 接口?”? ?可以? 發送折線圖、柱狀圖

官方文檔:創建并投放卡片 - 釘釘開放平臺

0依賴、1模板、2機器人放到內部應用、3放開這個權限 、4工具類、5調用工具類 拼接入參

卡片模板 自己看文檔創建,卡片模板的id 有用

0、依賴?
<dependency><groupId>com.aliyun</groupId><artifactId>dingtalk</artifactId><version>2.0.87</version>
</dependency><dependency><groupId>com.aliyun</groupId><artifactId>alibaba-dingtalk-service-sdk</artifactId><version>2.0.0</version></dependency>
1、找到你的機器人,遷移到內部應用

2、放開這個權限? ??Card.Instance.Write

3、參數要求,重要 (這是發給個人的)

3.1 發給群的參數這樣寫 (看紅框里的)

3.2其他參數

3.3 你的入參是這樣的就對了
{"cardData":{"cardParamMap":{"count":"{\"data\":[{\"x\":\"N0\",\"type\":\"line\",\"y\":48},{\"x\":\"N1\",\"type\":\"line\",\"y\":74}],\"type\":\"histogram\",\"config\":{}}"}},"outTrackId":"test23","cardTemplateId":"785b7cec-c8c5-4bba-99be-6da77befb022.schema","openSpaceId":"dtv1.card//im_group.cid4cUEK93zmHMHb1ycvDESQQ==","imRobotOpenDeliverModel":{"spaceType":"IM_ROBOT"},"imGroupOpenSpaceModel":{"supportForward":false},"imGroupOpenDeliverModel":{"robotCode":"ding0a8fitygi7torxla"}
}
4、柱狀圖效果

卡片模板 自己看文檔創建,卡片模板的id 有用

5、工具類代碼
import com.aliyun.dingtalkcard_1_0.models.CreateAndDeliverHeaders;
import com.aliyun.dingtalkcard_1_0.models.CreateAndDeliverRequest;
import com.aliyun.dingtalkcard_1_0.models.CreateAndDeliverResponse;
import com.aliyun.tea.TeaException;
import com.aliyun.teautil.models.RuntimeOptions;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.RandomStringUtils;import java.util.Map;/*** @author szl* @date 2024/2/29 0029 10:38*/
@Slf4j
public class DingCardUtils {public static final String APP_KEY = "dinwergsdfrx";public static final String APP_SECRET = "G8Gasdfsdfasd";public static String cardTemplateId_personal = "3b8besadfsdf-85asdff1.schema";public static String cardTemplateId_principal = "96sadf9.schema";public static com.aliyun.dingtalkcard_1_0.Client createClient() throws Exception {com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();config.protocol = "https";config.regionId = "central";return new com.aliyun.dingtalkcard_1_0.Client(config);}/*** 給某個人 創建并投放卡片*/public static void sendDingcard(String receiveUserId, String outTrackId, Map<String, String> cardDataCardParamMap, String cardTemplateId, String Key) throws Exception {com.aliyun.dingtalkcard_1_0.Client client = createClient();CreateAndDeliverHeaders createAndDeliverHeaders = new CreateAndDeliverHeaders();String accessToken = DingUtils.setAccessToken();createAndDeliverHeaders.xAcsDingtalkAccessToken = accessToken;CreateAndDeliverRequest.CreateAndDeliverRequestCardData cardData = new CreateAndDeliverRequest.CreateAndDeliverRequestCardData().setCardParamMap(cardDataCardParamMap);CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenDeliverModel imRobotOpenDeliverModel = new CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenDeliverModel().setSpaceType("IM_ROBOT");//折線圖卡片需要這個CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenSpaceModel imRobotOpenSpaceModel = new CreateAndDeliverRequest.CreateAndDeliverRequestImRobotOpenSpaceModel().setSupportForward(false);CreateAndDeliverRequest.CreateAndDeliverRequestImGroupOpenDeliverModel imGroupOpenDeliverModel = new CreateAndDeliverRequest.CreateAndDeliverRequestImGroupOpenDeliverModel().setRobotCode(APP_KEY);CreateAndDeliverRequest createAndDeliverRequest = new CreateAndDeliverRequest().setOutTrackId(outTrackId).setCardTemplateId(cardTemplateId).setOutTrackId(outTrackId).setCardData(cardData).setImRobotOpenSpaceModel(imRobotOpenSpaceModel).setOpenSpaceId("dtv1.card//IM_ROBOT." + receiveUserId + ";").setImGroupOpenDeliverModel(imGroupOpenDeliverModel).setImRobotOpenDeliverModel(imRobotOpenDeliverModel).setUserIdType(1);try {CreateAndDeliverResponse andDeliverWithOptions = client.createAndDeliverWithOptions(createAndDeliverRequest, createAndDeliverHeaders, new RuntimeOptions());log.info("卡片id為:" + andDeliverWithOptions);} catch (TeaException err) {err.printStackTrace();}}/*** 獲取消息id** @return*/public static String getOutTrackId() {return System.currentTimeMillis() + RandomStringUtils.randomAlphanumeric(6);}

5.2 獲取token 的代碼? 不再詳細描述??APP_KEY,? ?APP_SECRET? 自己的

/*** 初始化--權限Client** @return Client* @throws Exception*/public static com.aliyun.dingtalkoauth2_1_0.Client createAuthClient() throws Exception {Config config = new Config();config.protocol = "https";config.regionId = "central";return new com.aliyun.dingtalkoauth2_1_0.Client(config);}/*** 獲取并設置最新accessToken,每兩小時失效*/public static String setAccessToken() throws Exception {com.aliyun.dingtalkoauth2_1_0.Client client = createAuthClient();GetAccessTokenRequest getAccessTokenRequest = new GetAccessTokenRequest().setAppKey(APP_KEY).setAppSecret(APP_SECRET);try {GetAccessTokenResponse accessToken = client.getAccessToken(getAccessTokenRequest);System.out.println("000----:" + accessToken);//設置access_tokenreturn accessToken.getBody().accessToken;} catch (TeaException err) {System.out.println(err.message);return null;} catch (Exception _err) {TeaException err = new TeaException(_err.getMessage(), _err);System.out.println(err.message);return null;}}

5.3、拼接數據,調用工具類 (入參看不懂的,評論區問)

/*** 拼接數據后發送** @param aname a name* @param dnum  a number*/public void sendDingcard(String campusName, String receiveUserId, String cardTemplateId,String aname, String bname, String cname, String dname,Integer anum, Integer bnum, Integer cnum, Integer dnum) {try {List<JSONObject> data = new ArrayList<>();JSONObject json1 = new JSONObject();json1.put("x", aname);json1.put("y", anum);json1.put("type", aname);data.add(json1);JSONObject json2 = new JSONObject();json2.put("x", bname);json2.put("y", bnum);json2.put("type", bname);data.add(json2);JSONObject json3 = new JSONObject();json3.put("x", cname);json3.put("y", cnum);json3.put("type", cname);data.add(json3);JSONObject json4 = new JSONObject();json4.put("x", dname);json4.put("y", dnum);json4.put("type", dname);data.add(json4);JSONObject count = new JSONObject();count.put("data", data);count.put("type", "histogram");count.put("config", new JSONObject());Map<String, String> cardCreateParam = new HashMap<>();cardCreateParam.put("campusName", campusName);cardCreateParam.put("yifenpei", anum.toString());cardCreateParam.put("weifenpei", bnum.toString());cardCreateParam.put("yigoutong", bnum.toString());cardCreateParam.put("weigoutong", cnum.toString());cardCreateParam.put("weizhuanhua", dnum.toString());cardCreateParam.put("chartData", count.toString());DingCardUtils.sendDingcard(receiveUserId, DingCardUtils.getOutTrackId(), cardCreateParam, cardTemplateId, null);} catch (Exception e) {e.printStackTrace();}}

看不懂的,評論區問

2024年3月1日14:02:18

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/712248.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/712248.shtml
英文地址,請注明出處:http://en.pswp.cn/news/712248.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Springboot項目中定時任務的四種實現方式

文章目錄 1. 使用Scheduled注解1.1 時間間隔執行1.2 固定時間點執行 2. 使用EnableScheduling注解啟用定時任務3. 實現SchedulingConfigurer接口4. 使用Quartz框架4.1 配置QuartzScheduler4.2 定義Job類和Trigger類 5. 總結 在開發現代應用時&#xff0c;定時任務是一個非常常見…

地圖可視化繪制 | R-ggplot2 NC地圖文件可視化

在推出兩期數據分享之后&#xff0c;獲取數據的小伙伴們也知道&#xff0c;數據格式都是NetCDF(nc) 格式網格數據&#xff0c;雖然我在推文分享中說明使用Python、R或者GIS類軟件都是可以進行 處理和可視化繪制的&#xff0c;但是&#xff0c;還是有小伙伴咨詢使用編程軟件Pyth…

牛客周賽 Round 34(A,B,C,D,E,F,G)

把這場忘了。。官方也遲遲不發題解 比賽鏈接 出題人題解 A 小紅的字符串生成 思路&#xff1a; 枚舉四種字符串打印出來即可&#xff0c;為了防止重復可以用set先去一下重。 code&#xff1a; #include <iostream> #include <cstdio> #include <cstring&g…

Opencv實戰(4)詳解輪廓

輪廓 Opencv實戰系列&#xff0c;前文&#xff1a; 文章目錄 輪廓(1).查找繪制1.findContours()2.drawContours() (2).層級結構(3).篩選輪廓(4).凸包 (1).查找繪制 預處理&#xff1a; 灰度化&#xff1a;使用cv::cvtColor()圖像去噪&#xff1a;使用高斯濾波cv::Gaussian(…

Acwing-基礎算法課筆記之數學知識(擴展歐幾里得算法)

Acwing-基礎算法課筆記之數學知識&#xff08;擴展歐幾里得算法&#xff09; 一、擴展歐幾里得算法1、裴蜀定理2、過程模擬3、代碼模板 二、線性同余方程1、定義2、模擬過程3、結論證明 一、擴展歐幾里得算法 1、裴蜀定理 對于任意正整數 a a a&#xff0c; b b b&#xff0…

day48 ● 198.打家劫舍 ● 213.打家劫舍II ● 337.打家劫舍III

一遍過。 當前房屋偷與不偷取決于 前一個房屋和前兩個房屋是否被偷了。所以這里就更感覺到&#xff0c;當前狀態和前面狀態會有一種依賴關系&#xff0c;那么這種依賴關系都是動規的遞推公式。 class Solution { public:int rob(vector<int>& nums) {vector<vec…

門店縱深不足、入口有遮擋影響客流準確率?近景客流幫你搞定!

為了優化運營策略、提升門店營收&#xff0c;很多店鋪和商場都會安裝客流攝像機。但是在實際應用中&#xff0c;由于門店縱深受限等原因&#xff0c;導致無法使用之前的常規客流產品。 針對這種情況&#xff0c;悠絡客最新研發了近景客流產品&#xff0c;即使存在入口被遮擋或門…

內網信息搜集

目錄 內網基礎知識 基本流程圖 怎么判斷是否在域內 常規信息類收集-應用&服務&權限等 cs信息搜集 bloodhound安裝及使用 內網基礎知識 工作組&#xff1a;將不同的計算機按照功能分別列入不同的組&#xff0c;想要訪問某個部門的資源&#xff0c;只要在【網絡】里…

pyqt教程

一、組件安裝配置 1.安裝組件 在Anaconda Prompt下進入自己的python環境 pip install PyQt5 pip install PyQt5-tools 2.vscode安裝插件 3.配置路徑 配置Pyuic:Cmd與Qtdesigner:Path路徑 1.Pyuic:Cmd路徑 一般是在你安裝的python環境下的 \Scripts\pyuic5.exe 2.Qtdesigner:P…

anaconda簡介以及安裝(Windows)

介紹 Anaconda是一個開源的Python發行版本&#xff0c;它是一個打包的集合&#xff0c;里面預裝了conda、Python、眾多packages、科學計算工具等。Anaconda的目的是方便使用Python進行數據科學研究&#xff0c;它涵蓋了數據科學領域常見的Python庫&#xff0c;并且自帶了專門用…

Python的循環結構練習

歸納編程學習的感悟&#xff0c; 記錄奮斗路上的點滴&#xff0c; 希望能幫到一樣刻苦的你&#xff01; 如有不足歡迎指正&#xff01; 共同學習交流&#xff01; &#x1f30e;歡迎各位→點贊 &#x1f44d; 收藏? 留言?&#x1f4dd; 生命對某些人來說是美麗的&#xff0c…

我國每年研究生的畢業數量統計分享

本數據集詳細記錄了自1949年至2021年我國每年研究生的畢業數量&#xff08;包括碩士和博士學位的畢業生&#xff09;。在2021年&#xff0c;我國的研究生畢業生人數達到了772,761人&#xff0c;此數字比上一年度增加了44,000人。 統計的數據單位使用的是人數。 數據展示&…

mysql,for循環執行sql

遇到一個問題&#xff0c;我需要模擬上百萬數據來優化sql&#xff0c;線上數據down不下來&#xff0c;測試庫又沒有&#xff0c;寫代碼執行要么慢要么就是sql語句太長。 于是&#xff0c;直接用mysql自帶的功能去實現&#xff01; 簡單而簡單 mysql可以for循環&#xff1f;沒…

Laravel框架: Call to a member function connect() on null 異常報錯處理

Laravel框架&#xff1a; Call to a member function connect() on null 異常報錯處理 Date: 2024.03.01 21:03:11 author: lijianzhan 原文鏈接: https://learnku.com/laravel/t/63721 問題&#xff1a; local.ERROR: Call to a member function connect() on null {"…

【前端素材】推薦優質后臺管理系統 Greeva平臺模板(附源碼)

一、需求分析 1、系統定義 后臺管理系統是一種用于管理網站、應用程序或系統的管理界面&#xff0c;通常由管理員和工作人員使用。它提供了訪問和控制網站或應用程序后臺功能的工具和界面&#xff0c;使其能夠管理用戶、內容、數據和其他各種功能。 2、功能需求 后臺管理系…

使用mininet快速入門ONOS路由交換技術與原理-路由篇

上篇文章 《使用mininet快速入門ONOS路由交換技術與原理-交換篇》 使用mininet搭建了一個簡單的網絡拓撲&#xff0c;并實現了同一交換機下同網段多主機的通信&#xff0c;其中涉及到的通信知識主要以二層mac地址通信為主。 但在蕓蕓網絡的世界中&#xff0c;主機間的通信除了…

【C++】數組、函數、指針

文章目錄 1.數組1.1一維數組1.2二維數組 2.函數3.指針&#xff1a;可以通過指針間接訪問內存(指針記錄地址&#xff09;3.1 指針的定義和使用3.2 指針所占用空間3.3 空指針和野指針3.4 const修飾指針3.5指針和數組3.6指針和函數3.7練習&#xff08;指針、數組、函數&#xff09…

綜合練習(二)

目錄 列出薪金比 SMITH 或 ALLEN 多的所有員工的編號、姓名、部門名稱、領導姓名、部門人數&#xff0c;以及所在部門的平均工資、最高和最低工資 補充 spool Oracle從入門到總裁:https://blog.csdn.net/weixin_67859959/article/details/135209645 列出薪金比 SMITH 或 AL…

STM32USART串口數據包

文章目錄 前言一、介紹部分數據包兩種包裝方式&#xff08;分割數據&#xff09;HEX數據包文本數據包 數據包的收發流程數據包的發送數據包的接收固定包長的hex數據包接收可變包長的文本數據包接收 二、實例部分固定包長的hex數據包接收連接線路代碼實現 可變包長的文本數據包接…

【InternLM 實戰營筆記】基于 InternLM 和 LangChain 搭建你的知識庫

準備環境 bash /root/share/install_conda_env_internlm_base.sh InternLM升級PIP # 升級pip python -m pip install --upgrade pippip install modelscope1.9.5 pip install transformers4.35.2 pip install streamlit1.24.0 pip install sentencepiece0.1.99 pip install a…