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

Aug 13, 2020 pm 05:16 PM
java

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

Outils d'IA chauds

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

Rimworld Odyssey Comment pêcher
1 Il y a quelques mois By Jack chen
Puis-je avoir deux comptes Alipay?
1 Il y a quelques mois By 下次还敢
Guide du débutant de Rimworld: Odyssey
1 Il y a quelques mois By Jack chen
Porce de variable PHP expliquée
3 Il y a quelques semaines By 百草

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel PHP
1506
276
La visionneuse PDF Edge ne fonctionne pas La visionneuse PDF Edge ne fonctionne pas Aug 07, 2025 pm 04:36 PM

TestThepdfinanotherApptodetermineIftheissueiswiththefileoredge.2.EnBlEthebuilt-inpdfViewerByTurningOff "AlwaysOpenpdffilesexternal" et "DownloadPdffiles" inedgestoSolver.

Déploiement d'une application Java à Kubernetes avec Docker Déploiement d'une application Java à Kubernetes avec Docker Aug 08, 2025 pm 02:45 PM

Application Java conteneurisée: Créez un DockerFile, utilisez une image de base telle que Eclipse-Temurin: 17-Jre-Alpine, copiez le fichier JAR et définissez la commande de démarrage, construisez l'image via DockerBuild et exécutez localement avec Dockerrun. 2. Poussez l'image vers le registre des conteneurs: utilisez Docktag pour marquer l'image et le pousser vers DockerHub et d'autres registres. Vous devez d'abord vous connecter à Dockerlogin. 3. Déploiement sur Kubernetes: écrivez Deployment.yaml pour définir le déploiement, définissez le nombre de répliques, les images de conteneurs et les restrictions de ressources, et écrivez Service.yaml pour créer

Comment implémenter un client TCP simple en Java? Comment implémenter un client TCP simple en Java? Aug 08, 2025 pm 03:56 PM

Importjava.ioandjava.net.socketfori / oandsocketcommunication.2.CreateasockingObjectToConnectTotheServerusingHostNAMEAndport.3.USEPRINTWRERTOSENDDATAVIATPUTSTREMANDBUFFERDREDERTOREADSERVERSPONSESESES

VS CODE Raccourci pour se concentrer sur le panneau Explorer VS CODE Raccourci pour se concentrer sur le panneau Explorer Aug 08, 2025 am 04:00 AM

Dans VSCODE, vous pouvez rapidement changer le panneau et la zone d'édition via des touches de raccourci. Pour sauter vers le panneau d'explorateur gauche, utilisez Ctrl Shift E (Windows / Linux) ou CMD Shift E (Mac); Retournez dans la zone d'édition pour utiliser Ctrl `ou ESC ou Ctrl 1 ~ 9. Par rapport au fonctionnement de la souris, les raccourcis clavier sont plus efficaces et n'interrompent pas le rythme de codage. Les autres conseils incluent: Ctrl KCTRL E FOCUS RECHERCH BOX, F2 Renommer Fichier, Supprimer le fichier, Entrez le fichier ouvert, le dossier de la touche Arrow Extend / Effondrement.

Comment utiliser Mockito pour se moquer en Java? Comment utiliser Mockito pour se moquer en Java? Aug 07, 2025 am 06:32 AM

Pour utiliser efficacement Mockito pour les tests d'unité Java, vous devez d'abord ajouter des dépendances Mockito, ajouter des dépendances de mockito-core dans le projet Maven et ajouter le témoignation'org.mockito: mockito-core: 5.7.0 'au projet Gradle; Créez ensuite des objets simulés via une annotation @mock (combinée avec @ExtendWith (MockitoExtension.class)) ou MOCK (); puis utilisez quand (...). ThereTreturn (...) et d'autres méthodes pour coller le comportement de la méthode de l'objet simulé, ou vous pouvez configurer différents

Quel est le processus de sérialisation pour un objet Java? Quel est le processus de sérialisation pour un objet Java? Aug 08, 2025 pm 04:03 PM

JavaserializationConvertsanObject'sStateIntoabyTereamForSorageorTransmission, etdesializationreconstructStheObjectfromThatStream.1.ToEnableSerialization, aclassmustimplementTheSerizable Interface.2.UseObjectOutStreamToserialiseanobject, Savin

Comment utiliser une boucle de temps en Java Comment utiliser une boucle de temps en Java Aug 08, 2025 pm 04:04 PM

AwhileloopinjavarePeatlyExECUtesCodeaslongAstheConditioniStrue; 2.InitialiseAntrolvariableBeforeTheroop; 3.DefeTheLoopConditionususingAboolEanExpression; 4.UpdateTheControlvariableSideThelopToPrevevenInIniteLooping; 5.USEEXMELLESLILESLINIDINGNUNTINGNUMBUR

Correction: la mise à jour Windows n'a pas réussi à installer Correction: la mise à jour Windows n'a pas réussi à installer Aug 08, 2025 pm 04:16 PM

RunThewindowsUpDateTroulesshooTervAyingSettings> Update & Security> TroubleshoottoAutomAticyFixComMonissues.2.ResetwindowsupDateComponentsBystoppingrelatedServices, RenamingtheSoftwaredSistributeandCatroot2folders, TherestartingTheServicestoClelele

See all articles