Maison > Java > javaDidacticiel > le corps du texte

Apprenez Java pour implémenter un exemple de code pour l'envoi de messages du robot DingTalk

coldplay.xixi
Libérer: 2020-08-13 17:16:42
avant
3239 Les gens l'ont consulté

Apprenez Java pour implémenter un exemple de code pour l'envoi de messages du robot DingTalk

Créez d'abord un groupe DingTalk et ajoutez des robots

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

À ce stade, le robot a été ajouté. Ensuite, écrivez le code pour que nous puissions nous connecter au robot frère

import com.alibaba.fastjson.JSON;
import com.google.common.collect.Lists;
import com.google.common.collect.Maps;
import java.util.List;
import java.util.Map;

/**
 * @author yanghao
 * @version DingTalkTest.java, v 0.1 2019-03-29 11:36
 */
public class DingTalkTest {

 public static void main(String[] args){

 try {
  //钉钉机器人地址(配置机器人的webhook)
  String dingUrl = "https://oapi.dingtalk.com/robot/send?access_token=............";

  //是否通知所有人
  boolean isAtAll = false;
  //通知具体人的手机号码列表
  List<String> mobileList = Lists.newArrayList();

  //钉钉机器人消息内容
  String content = "小哥,你好!";
  //组装请求内容
  String reqStr = buildReqStr(content, isAtAll, mobileList);

  //推送消息(http请求)
  String result = HttpUtil.postJson(dingUrl, reqStr);
  System.out.println("result == " + result);

 }catch (Exception e){
  e.printStackTrace();

 }

 }

 /**
 * 组装请求报文
 * @param content
 * @return
 */
 private static String buildReqStr(String content, boolean isAtAll, List<String> mobileList) {
 //消息内容
 Map<String, String> contentMap = Maps.newHashMap();
 contentMap.put("content", content);

 //通知人
 Map<String, Object> atMap = Maps.newHashMap();
 //1.是否通知所有人
 atMap.put("isAtAll", isAtAll);
 //2.通知具体人的手机号码列表
 atMap.put("atMobiles", mobileList);

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

 return JSON.toJSONString(reqMap);
 }

}
Copier après la connexion

Les résultats d'exécution sont les suivants :

result == {"errmsg":"ok","errcode":0}
Copier après la connexion

Message d'affichage du groupe DingTalk :

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

ok, simple message push, c'est fait !

Testons de notifier tout le monde et de notifier à nouveau des personnes spécifiques

Changeons isAtAll par true

//是否通知所有人
boolean isAtAll = true;
//通知具体人的手机号码列表
List<String> mobileList = Lists.newArrayList();
Copier après la connexion

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Ajouter la liste des numéros de notificateur (Remarque : isAtAll et mobileList ne peuvent pas prendre effet en même temps)

//是否通知所有人
boolean isAtAll = false;
//通知具体人的手机号码列表
List<String> mobileList = Lists.newArrayList();
mobileList.add("182********");
Copier après la connexion

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Testons les symboles spéciaux

Identificateur de saut de ligne

/**
 * 换行标识符
 */
private static final String NEWLINE = "\n";

//钉钉机器人消息内容
//String content = "小哥,你好!";
StringBuffer sb = new StringBuffer();
sb.append("小哥,你好!")
 .append(NEWLINE)
 .append("看会书");

String content = sb.toString();
Copier après la connexion

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

image emoji

Récupérez d'abord l'encodage Unicode de l'image emoji

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Écrivez le code comme suit :

/**
 * 苹果unicode编码
 */
private static final String APPLE = "\ud83c\udf4e";

//钉钉机器人消息内容
//String content = "小哥,你好!";
StringBuffer sb = new StringBuffer();
sb.append("小哥,你好!")
 .append(NEWLINE)
 .append("看会书")
 .append(NEWLINE)
 .append("吃个").append(APPLE);

String content = sb.toString();
Copier après la connexion

Apprenez Java pour implémenter un exemple de code pour lenvoi de messages du robot DingTalk

Habituellement dans nos projets, il est ajouté comme certaines alarmes, ce qui est pratique et pratique
Un robot DingTalk très intéressant avec de nombreuses compétences pratiques que vous pouvez explorer en profondeur !

Mise à jour le 05/12/2019

De nombreux amis ont laissé des messages demandant des requêtes http Voici 2 codes de requête http pour vous

<🎜. >1. projet maven

Ajouter une dépendance

<!--糊涂工具-->
<dependency>
 <groupId>cn.hutool</groupId>
 <artifactId>hutool-all</artifactId>
 <version>4.0.12</version>
</dependency>
Copier après la connexion

code de requête http

private static final int timeout = 10000; 

public static String postJson(String url, String reqStr) {
 String body = null;
 try {
  body = HttpRequest.post(url).body(reqStr).timeout(timeout).execute().body();
 } catch (Exception e) {
  e.printStackTrace();
 }
 return body;
}
Copier après la connexion

2. > Ajouter le package jar httpclient-xxx.jarcommons-logging-xxx.jar

code de requête http

public static String postJson(String url, String body) {
  // 创建Httpclient对象
  CloseableHttpClient httpClient = createCustomClient();
  CloseableHttpResponse response = null;
  String resultString = null;
  try {
   // 创建Http Post请求
   HttpPost httpPost = new HttpPost(url);
   httpPost.addHeader("Content-Type", "application/json");

   if (body != null) {
    httpPost.setEntity(new StringEntity(body, "utf-8"));
   }
   // 执行http请求
   response = httpClient.execute(httpPost);
   resultString = EntityUtils.toString(response.getEntity(), "utf-8");
  } catch (Exception e) {
   e.printStackTrace();
  } finally {
   try {
    if (response != null) {
     response.close();
    }
   } catch (Exception e) {
    e.printStackTrace();
   }
  }

  return resultString;
 }

 public static CloseableHttpClient createCustomClient() {
  RequestConfig defaultRequestConfig = RequestConfig.custom()
    .setSocketTimeout(120 * 1000)
    .setConnectTimeout(120 * 1000)
    .setConnectionRequestTimeout(120 * 1000)
    .setStaleConnectionCheckEnabled(true)
    .build();

  return HttpClients.custom().setDefaultRequestConfig(defaultRequestConfig).build();
 }
Copier après la connexion

La méthode est pour référence seulement, il y a ceux prêts à l'emploi dans la requête http du projet peuvent être utilisés directement !

Recommandations d'apprentissage associées : Tutoriel de base Java

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:jb51.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal