您的位置 首页 java

通知神器——java调用钉钉群自定义机器人

创建群自定义机器人

在指定钉钉群(或者随便拉两个人建个群,然后把别人T出去)的群设置里选择 群机器人 -> 自定义,如图:

然后,添加机器人,设置名字,添加成功时如下图:

其中webhook非常重要,下文详述。点击设置说明可以看相关使用文档,文档链接见本文末尾。

使用HTTP POST请求发送消息

直接向上文所述的webhook链接发送POST请求已达到自定义机器人向群内发消息的功能

按照文档中所属的参数格式直接向链接发送请求即可,我使用Postman发送请求如下:

效果如下:

发送其他格式(如:链接消息、markdown、ActionCard)的消息效果如下:

确定你需要哪种消息了吗?如果需要使用,通过这种方式来实现,组织参数还是挺麻烦的,不过我们可以使用sdk来简化操作

使用sdk调用自定义机器人

#/faquestions/vzbp02

 public static void main(String[] args) throws ApiException {
 final String serverUrl =
 "";
 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());
 }
 

text文本消息

 public static void sentText(OapiRobotSendRequest request) {
 Text text = new Text();
 text.setContent("sdk demo");
 request.setMsgtype("text");
 request.setText(text);
 }
 

link链接消息

 public static void sendLink(OapiRobotSendRequest request) {
 Link link = new Link();
 link.setTitle("好消息!好消息!");
 link.setText("本群与 百度 成功达成合作关系,今后大家有什么不懂的可以直接 百度 搜索,不用再群里提问浪费时间啦!");
 link.setMessageUrl("");
 link.setPicUrl("");
 request.setMsgtype("link");
 request.setLink(link);
 }
 

markdown消息

 public static void sendMarkdown(OapiRobotSendRequest request) {
 Markdown markdown = new Markdown();
 markdown.setTitle("好消息!好消息!");
 markdown.setText(
 "#### 杭州天气 @156xxxx8827\n> 9度,西北风1级,空气良89,相对温度73%\n\n"
 + "> ![screenshot]("
 + "> ###### 10点20分发布 [天气]( \n");
 
 request.setMsgtype("markdown");
 request.setMarkdown(markdown);
 }
 

ActionCard消息

 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("");
 List<Btns> btns = new ArrayList<>();
 Btns btn0 = new Btns();
 btn0.setTitle("内容不错");
 btn0.setActionURL("");
 btns.add(btn0);
 Btns btn1 = new Btns();
 btn1.setTitle("不感兴趣");
 btn1.setActionURL("");
 btns.add(btn1);
 actioncard.setBtns(btns);
 request.setMsgtype("actionCard");
 request.setActionCard(actioncard);
 }
 

FeedCard消息

类似公众号头条、次条消息

 public static void sendFeedCard(OapiRobotSendRequest request) {
 Feedcard feedcard = new Feedcard();
 List<Links> linksList = new ArrayList<>();
 Links links0 = new Links();
 links0.setTitle("时代的火车向前开1");
 links0.setMessageURL(
 "");
 links0.setPicURL("");
 linksList.add(links0);
 Links links1 = new Links();
 links1.setTitle("时代的火车向前开2");
 links1.setMessageURL(
 "");
 links1.setPicURL("");
 linksList.add(links1);
 feedcard.setLinks(linksList);
 request.setMsgtype("feedCard");
 request.setFeedCard(feedcard);
 }
 

参考资源

#/serverapi2/qf2nxq

#/faquestions/dcubhu

#/faquestions/vzbp02

文章来源:智云一二三科技

文章标题:通知神器——java调用钉钉群自定义机器人

文章地址:https://www.zhihuclub.com/191017.shtml

关于作者: 智云科技

热门文章

网站地图