在指定釘釘羣(或者隨便拉兩我的建個羣,而後把別人T出去)的羣設置裏選擇 羣機器人 -> 自定義,如圖:
java
而後,添加機器人,設置名字,添加成功時以下圖:
android
其中webhook很是重要,下文詳述。點擊設置說明能夠看相關使用文檔,文檔連接見本文末尾。web
直接向上文所述的webhook連接發送POST請求已達到自定義機器人向羣內發消息的功能c#
按照文檔中所屬的參數格式直接向連接發送請求便可,我使用Postman發送請求以下:
api
效果以下:
markdown
發送其餘格式(如:連接消息、markdown、ActionCard)的消息效果以下:
app
肯定你須要哪一種消息了嗎?若是須要使用,經過這種方式來實現,組織參數仍是挺麻煩的,不過咱們可使用sdk來簡化操做ide
public static void main(String[] args) throws ApiException { final String serverUrl = "https://oapi.dingtalk.com/robot/send?access_token=*******************************************************"; DingTalkClient client = new DefaultDingTalkClient(serverUrl); OapiRobotSendRequest request = new OapiRobotSendRequest(); At at = new At(); at.setIsAtAll("true"); request.setAt(at); // 若上一步isAtAll沒有設置true,則根據此處設置的手機號來@指定人 List<String> mobiles = new ArrayList<>(); mobiles.add("166********"); at.setAtMobiles(mobiles); // 如下是設置各類消息格式的方法 sentText(request); // sendLink(request); // sendMarkdown(request); // sendActionCard(request); // sendFeedCard(request); OapiRobotSendResponse response = client.execute(request); System.out.println(response.getErrmsg()); }
public static void sentText(OapiRobotSendRequest request) { Text text = new Text(); text.setContent("sdk demo"); request.setMsgtype("text"); request.setText(text); }
public static void sendLink(OapiRobotSendRequest request) { Link link = new Link(); link.setTitle("好消息!好消息!"); link.setText("本羣與百度成功達成合做關係,從此你們有什麼不懂的能夠直接百度搜索,不用再羣裏提問浪費時間啦!"); link.setMessageUrl("https://www.baidu.com"); link.setPicUrl("http://www.baidu.com/img/bd_logo1.png"); request.setMsgtype("link"); request.setLink(link); }
public static void sendMarkdown(OapiRobotSendRequest request) { Markdown markdown = new Markdown(); markdown.setTitle("好消息!好消息!"); markdown.setText( "#### 杭州天氣 @156xxxx8827\n> 9度,西北風1級,空氣良89,相對溫度73%\n\n" + "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n" + "> ###### 10點20分發布 [天氣](http://www.thinkpage.cn/) \n"); request.setMsgtype("markdown"); request.setMarkdown(markdown); }
public static void sendActionCard(OapiRobotSendRequest request) { Actioncard actioncard = new Actioncard(); actioncard.setTitle("喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身"); actioncard.setText( "![screenshot](@lADOpwk3K80C0M0FoA) \n" + " ### 喬布斯 20 年前想打造的蘋果咖啡廳 Apple Store 的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實能夠追溯到 20 年前蘋果一個創建咖啡館的計劃"); actioncard.setHideAvatar("0"); actioncard.setBtnOrientation("1"); // actioncard.setSingleTitle("閱讀全文"); // actioncard.setSingleURL("https://www.baidu.com/"); List<Btns> btns = new ArrayList<>(); Btns btn0 = new Btns(); btn0.setTitle("內容不錯"); btn0.setActionURL("https://www.qq.com/"); btns.add(btn0); Btns btn1 = new Btns(); btn1.setTitle("不感興趣"); btn1.setActionURL("https://www.baidu.com/"); btns.add(btn1); actioncard.setBtns(btns); request.setMsgtype("actionCard"); request.setActionCard(actioncard); }
相似公衆號頭條、次條消息spa
public static void sendFeedCard(OapiRobotSendRequest request) { Feedcard feedcard = new Feedcard(); List<Links> linksList = new ArrayList<>(); Links links0 = new Links(); links0.setTitle("時代的火車向前開1"); links0.setMessageURL( "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI"); links0.setPicURL("https://www.dingtalk.com/"); linksList.add(links0); Links links1 = new Links(); links1.setTitle("時代的火車向前開2"); links1.setMessageURL( "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI"); links1.setPicURL("https://www.dingtalk.com/"); linksList.add(links1); feedcard.setLinks(linksList); request.setMsgtype("feedCard"); request.setFeedCard(feedcard); }