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

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

coldplay.xixi
coldplay.xixiavant
2020-08-13 17:16:423336parcourir

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);
 }

}

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

result == {"errmsg":"ok","errcode":0}

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();

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********");

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();

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();

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>

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;
}

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();
 }

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer