钉钉机器人推送和抓取钉钉群消息
前言
1.钉钉机器人能干什么?
摘抄:
群机器人是钉钉群的高级扩展功能。群机器人可以将第三方服务的信息聚合到群聊中,实现自动化的信息同步。目前,大部分机器人在添加后,还需要进行Webhook配置,才可正常使用(配置说明详见操作流程中的帮助链接)。
例如:
通过聚合GitHub,GitLab等源码管理服务,实现源码更新同步。
通过聚合Trello,JIRA等项目协调服务,实现项目信息同步。
另外,群机器人支持Webhook协议的自定义接入,支持更多可能性,例如:你可将运维报警通过自定义机器人聚合到钉钉群实现提醒功能。
2.钉钉机器人怎么用?
2.1 网上对钉钉自定义机器人描述的帖子比较多,使用起来也比较简单;给个官方文档,相信以大家的聪明才智很容易就看懂了,地址:官方地址
2.2 下面对企业内部机器人做个介绍(网上对这方面的介绍比较少,不知道是不是用的人少);官方地址:官方API
企业机器人是钉钉为用户提供的组织内部使用的机器人,为组织数字化转型业务服务。开发者可通过本文所描述步骤进行机器人的自主开发和上架,组织内其它成员可通过方便快捷地在群内添加企业机器人,并使用用机器人的能力。
基于企业机器人的outgoing机制,用户@机器人之后,钉钉会将消息内容POST到开发者的消息接收地址。开发者解析出消息内容、发送者身份,根据企业的业务逻辑,组装响应的消息内容返回,钉钉会将响应内容发送到群里。
最后,给大家画个图介绍一下它的使用场景,大家可以结合自己的业务需求,对号入座;
很多人私信说要看源码,现在补上:
第一步 钉钉后台设置页面填写@机器人后调用地址(我们自己业务系统暴露的接口地址):
第二步:系统后台代码
//Entity 接收对象
@Data
public class DemdITVo {//姓名private String senderNick;//回调的webhookprivate String sessionWebhook;//内容json contentprivate JSONObject text;//加密ID 工单机器人private String chatbotUserId;//用户加密IDprivate String senderId;//群聊标题private String conversationTitle;//用户钉钉UserIdprivate String senderStaffId;
}//Controller层
@PostMapping("/sendItByDd")
public ResMesg sendItByDd(@RequestBody DemdITVo params) {logger.info("接收钉钉群消息提交的信息,param:{}", params);return sendData(demdService.saveOnlineDemand(params));
}//具体业务就不截图了 说一下怎么回调@当事人
/**
* 返回群消息
* @param vo
* @param content
*/
private void sendSessionWebHook(DemdITVo vo, String content) {try {logger.info("sendSessionWebHook start send robot:" + content);String msg = "{\n" +" \"msgtype\": \"text\",\n" +"\"text\": {\n" +" \"content\": \""+content+"\"\n" +" }," +" \"at\": {\n" +" \"atDingtalkIds\": [\n" +" \""+ vo.getSenderId() +"\"\n" +" ], \n" +" \"isAtAll\": false\n" +" }\n" +" }";String jsonResult = HttpClientUtil.sendPostByThree(vo.getSessionWebhook(), msg);logger.info("sendSessionWebHook end send robot:" + jsonResult);} catch (Exception e) {logger.error("sendSessionWebHook 发送钉钉群消息时出错,error={}", e);}
}
//HttpClientUtil的代码
public static String sendPostByThree(String url, String jsonParam) {String respContent = "";try {HttpPost httpPost = new HttpPost(url);RequestConfig requestConfig = RequestConfig.custom().setConnectionRequestTimeout(8000).setConnectTimeout(8000).setSocketTimeout(8000).setRedirectsEnabled(false).build();httpPost.setConfig(requestConfig);StringEntity entity = new StringEntity(jsonParam,"utf-8");entity.setContentEncoding("UTF-8");entity.setContentType("application/json");httpPost.setEntity(entity);HttpClient httpClient = HttpClients.createDefault();HttpResponse resp = httpClient.execute(httpPost);if (200 == resp.getStatusLine().getStatusCode()) {HttpEntity responseEntity = resp.getEntity();respContent = EntityUtils.toString(responseEntity);}} catch (Exception e) {logger.error(e.getMessage(),e);}return respContent;
}
钉钉机器人推送和抓取钉钉群消息相关推荐
- 钉钉机器人(1)创建钉钉群机器人推送消息
创建钉钉群机器人发送消息 钉钉群机器人是一个高级扩展功能,只要有一个钉钉账号,就可以使用它.它可以将第三方信息聚合到钉钉群中,实现信息自动同步.支持Webhook协议的自定义接入,通过发明者量化机器人 ...
- Git远程推送和抓取分支
查看远程库信息 当你从远程仓库克隆时,实际上Git自动把本地的master分支和远程的master分支对应起来了,并且,远程仓库的默认名称是origin. 要查看远程库的信息,用git remote, ...
- 微信开发自带版本管理的使用(图文)---推送,抓取,拉取,贮藏
先简单的创建一个demo 初始化仓库 会发现多了两个文件,说明创建成功 配置成你自己的用户名和密码 添加远程仓库 编写简单的代码,用做测试 点击提交和一些提交信息 将HEAD重置到"**** ...
- java消息推送怎么实现_调用钉钉接口实现机器人推送消息
一.摘要 现实交易中为了能及时了解发明者量化机器人交易状态,有时候我们需要将机器人所执行的交易结果发送到微信.邮箱.短信等等.但每天上百条各种各样的信息,使得对这些信息已经不敏感,导致重要的信息不能及 ...
- 钉钉机器人推送表格图片
需求:要做一个钉钉机器人推送表格信息,10分钟一次 难点:1钉钉机器人不支持推送excel,2钉钉推送的图片不是动态的,需要自己写一个方法,变成获取新生成的图片 技术方案: 第一种:可以用图片服务器l ...
- 钉钉 服务器 消息推送,【20210727 更新】 全能推送PushBot(原钉钉推送)支持企业微信,PushPlus,Bark...
本帖最后由 然后七年 于 2021-7-27 21:51 编辑 公告: 自2021年04月25日起,本项目luci-app-serverchand改名为luci-app-pushbot 全能推送. o ...
- 通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python)
通过GitHub Actions给微信公众测试号和钉钉群定时推送消息(Python) https://github.com/QInzhengk/Math-Model-and-Machine-Learn ...
- python微信公众号推送_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
- python爬虫公众号_python爬虫_微信公众号推送信息爬取的实例
问题描述 利用搜狗的微信搜索抓取指定公众号的最新一条推送,并保存相应的网页至本地. 注意点 搜狗微信获取的地址为临时链接,具有时效性. 公众号为动态网页(JavaScript渲染),使用request ...
最新文章
- 双控专业就业机器人_工业机器人专业好就业吗?有哪些机器人技术岗位?
- 乐视云监控数据存放到influxdb中
- Vitamio中文API文档(1)—— MediaStore
- 机房系统(五)——【Excel表导出】
- 锁具行业电子工程师岗位职责_赏金猎人招募电子产品开发工程师产品结构工程师...
- 外媒:现代和起亚计划在新一代电动汽车上使用碳纳米管加热器
- linux nand 坏块_韦东山-NAND 上面都是坏块怎么办啊? - 百问网嵌入式问答社区
- 内连接,外连接,临时表,定义表,视图
- 浏览器cookie被禁掉,该如何去解决
- JAVA对接飞猪旅行_飞猪对接教程
- 转载-高仙机器人落地北京杭州深圳多个城市地铁
- 计算机科学家安内尔,历届诺贝尔生理学或医学奖获奖者简介
- 企业微信三方开发:注册企业微信服务商
- 【转】Chrome浏览器截全屏
- 【Redis学习05】优惠券秒杀及其优化
- 文件加密都有哪些方法?
- 在SQL中char、nchar、varchar和nvarchar的区别
- 计算机四级证书有哪些用处
- [Unity3D]Unity3D游戏开发之ACT游戏三连击效果实现综述
- 经典正则表达式 (“转自清清月儿”)