国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

對接釘釘機(jī)器人發(fā)送釘釘通知

這篇具有很好參考價(jià)值的文章主要介紹了對接釘釘機(jī)器人發(fā)送釘釘通知。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

  • 實(shí)現(xiàn)效果
    對接釘釘機(jī)器人發(fā)送釘釘通知,安裝軟件,釘釘,機(jī)器人
  • 話不多說 直接上代碼
static void sendMsg(String msg) {

  try {
	      String content = "{\"msgtype\": \"text\",\"text\": {\"content\": \"" + msg + "\"}}";
	      HttpUtil.simplePost(content, getDingUrl());
 	 } catch (Exception e) {
      log.error("釘釘消息發(fā)送失敗",e);
  }

        



private static String getDingUrl() throws Exception {
        // 獲取系統(tǒng)時(shí)間戳
        Long timestamp = System.currentTimeMillis();
        // 拼接  釘釘加簽
        String stringToSign = timestamp + "\n" + "SEC0c2c93412cff6ac2e****ac939189971c0b";
        // 使用HmacSHA256算法計(jì)算簽名
        Mac mac = Mac.getInstance("HmacSHA256");
        mac.init(new SecretKeySpec("SEC0c2c93412cff6ac2e****ac939189971c0b".getBytes(StandardCharsets.UTF_8), "HmacSHA256"));
        byte[] signData = mac.doFinal(stringToSign.getBytes(StandardCharsets.UTF_8));
        // 進(jìn)行Base64 encode 得到最后的sign,可以拼接進(jìn)url里
        String sign = URLEncoder.encode(new String(Base64.encodeBase64(signData)), "UTF-8");
        // 釘釘機(jī)器人地址(配置機(jī)器人的webhook),為了讓每次請求不同,避免釘釘攔截,加上時(shí)間戳
        return "https://oapi.dingtalk.com/robot/send?access_token=" + "&timestamp=" + timestamp + "&sign=" + sign;
    }
  • http工具類

import org.apache.http.Consts;
import org.apache.http.client.config.RequestConfig;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.config.ConnectionConfig;
import org.apache.http.config.SocketConfig;
import org.apache.http.conn.ssl.SSLConnectionSocketFactory;
import org.apache.http.conn.ssl.SSLContextBuilder;
import org.apache.http.conn.ssl.TrustStrategy;
import org.apache.http.entity.StringEntity;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import javax.net.ssl.SSLContext;
import java.security.cert.CertificateException;
import java.security.cert.X509Certificate;
import java.util.HashMap;
import java.util.Map;

/**
 * HttpUtil 請求
 * @author zhouyang
 */
public class HttpUtil {
	private static final Logger log = LoggerFactory.getLogger(HttpUtil.class);
	private static CloseableHttpClient httpClient;;
	private static RequestConfig requestConfig;
	private static final String ENCODING = Consts.UTF_8.name();
	private static final Map<String, Object> jsonHeaderMap = new HashMap();

	static {
		try{
			jsonHeaderMap.put("Content-Type","application/json");
			PoolingHttpClientConnectionManager connManager = new PoolingHttpClientConnectionManager();

			ConnectionConfig connectionConfig = ConnectionConfig.custom().setCharset(Consts.UTF_8).build();
			connManager.setDefaultConnectionConfig(connectionConfig);

			connManager.setMaxTotal(50);//最大連接數(shù)
			connManager.setDefaultMaxPerRoute(5);//路由最大連接數(shù)

			SocketConfig socketConfig = SocketConfig.custom()
					.setTcpNoDelay(true)
					.build();
			connManager.setDefaultSocketConfig(socketConfig);


			SSLContext sslContext = new SSLContextBuilder().loadTrustMaterial(null, new TrustStrategy() {
				//信任所有
				@Override
				public boolean isTrusted(X509Certificate[] chain, String authType)
						throws CertificateException {
					return true;
				}
			}).build();

			httpClient = HttpClients.custom()
					.setConnectionManager(connManager)
					.setSSLSocketFactory(new SSLConnectionSocketFactory(sslContext))
					.build();

			requestConfig = RequestConfig.custom()
					// 獲取manager中連接 超時(shí)時(shí)間 50s
					.setConnectionRequestTimeout(5000)
					// 連接服務(wù)器 超時(shí)時(shí)間  1500s
					.setConnectTimeout(150000)
					// 服務(wù)器處理 超時(shí)時(shí)間 3000s
					.setSocketTimeout(300000)
					.build();
		}catch(Exception e){
			throw new RuntimeException("創(chuàng)建httpClient失敗", e);
		}
	}





	public static final String simplePost(final String body, final String url) {
		return doPost(url, body, jsonHeaderMap);
	}

	/**
	 * post請求發(fā)送
	 */
	public static String doPost(String url, String bodyString, Map<String, Object> headerMap) {
		HttpPost post = new HttpPost(url);
		StringEntity entity = new StringEntity(bodyString, ENCODING);
		post.setEntity(entity);
		if (headerMap != null && !headerMap.isEmpty()) {
			headerMap.forEach((k, v) -> post.setHeader(k, String.valueOf(v)));
		}
		post.setConfig(requestConfig);
		try (CloseableHttpResponse response = httpClient.execute(post)) {
			if (response.getStatusLine().getStatusCode() == 200) {
				return EntityUtils.toString(response.getEntity(), ENCODING);
			}
		} catch (Exception e) {
			log.error("invoke post error", e);
		}
		return null;
	}
}

文章來源地址http://www.zghlxwxcb.cn/news/detail-823622.html

到了這里,關(guān)于對接釘釘機(jī)器人發(fā)送釘釘通知的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 釘釘機(jī)器人發(fā)送jira消息到釘釘群聊

    釘釘機(jī)器人發(fā)送jira消息到釘釘群聊

    前期準(zhǔn)備 1.安裝JIRA相關(guān)插件 Automation for Jira - Server Lite。 、 2.配置釘釘群機(jī)器人 01.釘釘群右上角點(diǎn)擊群設(shè)置,選擇智能群助手,點(diǎn)擊添加機(jī)器人,選擇自定義機(jī)器人; 02.給機(jī)器人起個(gè)名字,消息推送開啟,復(fù)制出webhook,后面會用到,勾選自定義,填寫(

    2024年02月15日
    瀏覽(53)
  • 在釘釘群通過機(jī)器人發(fā)送信息

    在第三方API接口對接中,需要及時(shí)獲取第三方接口請求結(jié)果情況,所以在代碼中融合釘釘機(jī)器人,對請求的異常結(jié)果及時(shí)發(fā)送通知。 自定義機(jī)器人參考鏈接 通用響應(yīng)參數(shù)-封裝API的錯誤碼 通用響應(yīng)參數(shù)-狀態(tài)碼 通過返回類定義 在釘釘群可以通過手機(jī)號碼@指定人員 關(guān)于釘釘群

    2024年02月01日
    瀏覽(31)
  • 使用telegram機(jī)器人發(fā)送通知

    使用telegram機(jī)器人發(fā)送通知

    在訓(xùn)練深度學(xué)習(xí)模型時(shí),除了粗略估計(jì)外,很難預(yù)測訓(xùn)練何時(shí)結(jié)束。此外,我們可能還想隨時(shí)隨地查看訓(xùn)練情況,如果每次都需要登錄回服務(wù)器的話并不方便。因此,為我們的訓(xùn)練設(shè)置自動通知會大有裨益。 相關(guān)的插件和庫其實(shí)很多,例如而knockknock、dinglingling,但是存在著

    2024年02月22日
    瀏覽(81)
  • python使用釘釘機(jī)器人給釘釘發(fā)送消息
  • 釘釘機(jī)器人發(fā)送Markdown格式的內(nèi)容

    釘釘機(jī)器人官方文檔 請求參數(shù)格式 要@人的時(shí)候,text中要有@電話號碼以及atMobiles是要有電話號碼才能@成功 指定文本顏色時(shí)用英文顏色單詞,僅PC支持,如果是16進(jìn)制色號并用雙引號,則PC和手機(jī)端均支持

    2024年02月14日
    瀏覽(24)
  • 釘釘自定義機(jī)器人定時(shí)發(fā)送消息(超詳細(xì))

    釘釘自定義機(jī)器人定時(shí)發(fā)送消息(超詳細(xì))

    ? ? ? ? 因?yàn)楣ぷ餍枰?,需要在釘釘群里添加一個(gè)可以每天定時(shí)發(fā)送消息的機(jī)器人,我找了很多網(wǎng)頁查看,發(fā)現(xiàn)資料并不是很全,現(xiàn)在做出來了,就想發(fā)表出來,看看能不能幫到大家。接下來就進(jìn)入正題。 ? ? ? ? 詳細(xì)步驟可以參考:釘釘群設(shè)置創(chuàng)建一個(gè)機(jī)器人-CSDN博客 ?

    2024年03月11日
    瀏覽(18)
  • java實(shí)現(xiàn)釘釘自定義機(jī)器人發(fā)送消息

    java實(shí)現(xiàn)釘釘自定義機(jī)器人發(fā)送消息

    ? ? ? ?釘釘作為現(xiàn)在很多企業(yè)的移動辦公平臺,具有很多很強(qiáng)大的功能,可以幫助我們更加及時(shí)的發(fā)現(xiàn)問題,解決問題,今天我們做一個(gè)java實(shí)現(xiàn)釘釘自定義機(jī)器發(fā)送消息的功能。 ? ? ? ? 首先,先放出官方文檔地址:https://open.dingtalk.com/document/orgapp/custom-robot-access ? ? ? ?

    2024年02月15日
    瀏覽(23)
  • 企業(yè)微信、飛書、釘釘機(jī)器人消息發(fā)送工具類

    其實(shí)你也可以使用RestTemplate,我這里主要是用到了webflux框架,所以需要實(shí)例化客戶端請求對象

    2024年02月10日
    瀏覽(26)
  • ElastAlert通過飛書機(jī)器人發(fā)送報(bào)警通知

    ElastAlert通過飛書機(jī)器人發(fā)送報(bào)警通知

    公司采用ELK架構(gòu)搜集業(yè)務(wù)系統(tǒng)的運(yùn)行日志,以前開發(fā)人員只有在業(yè)務(wù)出現(xiàn)問題的時(shí)候,才會去kibana上進(jìn)行日志搜索操作,每次都是被用戶告知系統(tǒng)出問題了,這簡直是被啪啪打臉~ 于是痛定思痛,決定主動出擊,查閱了許多資料,發(fā)現(xiàn)ElastAlert這個(gè)服務(wù)能夠?qū)lasticsearch的索引按

    2024年02月07日
    瀏覽(24)
  • Java實(shí)現(xiàn)釘釘企業(yè)內(nèi)部應(yīng)用機(jī)器和自定義機(jī)器人發(fā)送消息

    Java實(shí)現(xiàn)釘釘企業(yè)內(nèi)部應(yīng)用機(jī)器和自定義機(jī)器人發(fā)送消息

    ?公司讓寫一個(gè)服務(wù)監(jiān)控的功能,當(dāng)監(jiān)測到服務(wù)停止時(shí),向釘釘群里推送報(bào)警信息。之前大概看到釘釘?shù)拈_放平臺的API文檔,好像能群發(fā)消息的只有機(jī)器人。 釘釘開放平臺目前提供三種機(jī)器人: 企業(yè)內(nèi)部應(yīng)用機(jī)器人 群模板機(jī)器人 自定義機(jī)器人 本來向用自己比較熟悉的自定義

    2024年02月12日
    瀏覽(26)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包