ホームページ  >  記事  >  Java  >  Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

coldplay.xixi
coldplay.xixi転載
2020-08-13 17:16:423247ブラウズ

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

最初に DingTalk グループを作成し、ロボットを追加します

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する
##この時点で、ロボットが追加されました。次に、ロボット兄弟に接続するためのコードを記述します

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

}

実行結果は次のとおりです:

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

DingTalk グループ表示メッセージ:


Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する
わかりました。簡単なメッセージのプッシュです。これで完了です。

全員への通知と特定の人への通知をテストしましょう

isAtAll を true に変更します

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

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

通知番号リストを追加します

(注: isAtAll と mobileList は同時に有効にすることはできません)

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

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

特別な機能をテストしてみましょう記号

改行識別子

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

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

String content = sb.toString();

Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する#絵文字画像

#最初に絵文字画像の Unicode エンコードを取得します


次のようにコードを記述します: Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

/**
 * 苹果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();

通常、私たちのプロジェクトでは、これは便利で実用的なアラームとして追加されます。

非常に興味深い DingTalk ロボットで、多くの実践的なスキルを備えており、深く調べることができます。 Java を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装する

#2019 年 12 月 5 日更新


#多くの友人が http リクエストについて質問するメッセージを残しています。ここに 2 つの http リクエスト コードがあります

1. Maven プロジェクト

依存関係の追加

<!--糊涂工具-->
<dependency>
 <groupId>cn.hutool</groupId>
 <artifactId>hutool-all</artifactId>
 <version>4.0.12</version>
</dependency>

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. 非 Maven プロジェクト

jar パッケージを追加します

httpclient-xxx.jar

commons-logging-xxx.jarhttp リクエスト コード

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


メソッドは参照のみです。プロジェクト内で既製のものです http リクエストを直接使用できます。

関連する学習に関する推奨事項:

Java 基本チュートリアル

以上がJava を学習して DingTalk ロボット メッセージ プッシュのサンプル コードを実装するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事はjb51.netで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。