首頁 > Java > java教程 > 主體

學習java實作釘釘機器人訊息推播的範例程式碼

coldplay.xixi
發布: 2020-08-13 17:16:42
轉載
3167 人瀏覽過

學習java實作釘釘機器人訊息推播的範例程式碼

先建造一個釘子群,並加上好機器人

學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼


學習java實作釘釘機器人訊息推播的範例程式碼

##此時,機器人已經添加完畢,接下來編寫我們連接機器人小哥的程式碼

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}
登入後複製
學習java實作釘釘機器人訊息推播的範例程式碼釘子群組顯示訊息:

學習java實作釘釘機器人訊息推播的範例程式碼ok,簡單的訊息推送,這就完成了!

我們再來測試通知所有人和通知具體人

#將isAtAll更改為true

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

學習java實作釘釘機器人訊息推播的範例程式碼



學習java實作釘釘機器人訊息推播的範例程式碼

學習java實作釘釘機器人訊息推播的範例程式碼




#############################################################################” #########增加通知人號碼清單###(註:isAtAll和mobileList 不能同時生效)###
//是否通知所有人
boolean isAtAll = false;
//通知具体人的手机号码列表
List<String> mobileList = Lists.newArrayList();
mobileList.add("182********");
登入後複製
###############再來測試特殊符號############換行標識符######
/**
 * 换行标识符
 */
private static final String NEWLINE = "\n";

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

String content = sb.toString();
登入後複製
################emoji圖片########## ##先取得emoji圖片的unicode編碼######################寫程式如下:###
/**
 * 苹果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();
登入後複製
############通常在我們的專案中,作為一些告警加入,方便且實用###很有意思的釘釘機器人,很多實用技巧,可以深入去探索一波! #########更新於2019-12-05#########很多朋友留言諮詢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.jar#######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();
 }
登入後複製
######方法僅供參考,專案裡面有現成的http請求,可以直接使用! ############相關學習推薦:###java基礎教學##########

以上是學習java實作釘釘機器人訊息推播的範例程式碼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:jb51.net
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!