钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合github、gitlab等源码管理服务,实现源码更新同步;通过聚合trello、jira等项目协调服务,实现项目信息同步;同事,支持webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒、自动化测试的结果报告提醒、工作、生活日程安排(上班打卡、下班吃饭、健身、读书、生日、纪念日…)等等的提醒,通过自定义机器人聚合到钉钉中。
目前自定义机器人支持文本(text)、链接(link)、markdown三种消息格式、五种消息类型,详细信息请参考自定义机器人官方文档
二、安装使用
这么好用的功能,只要在群中添加好机器人,得到webhoo地址,在命令行终端马上就可以一睹为快:
1
2
3
4
5
6
7
8
|
curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
- h 'content-type: application/json' \
- d '
{ "msgtype" : "text" ,
"text" : {
"content" : "我就是我, 是不一样的烟火"
}
}'
|
由于各种消息调用,官方只提供java语言的封装,平时使用python比较多,为了更方便平时自动化项目的使用,周末花了点时间用python语言对各种消息类型进行了一一封装,代码已开源在github上,同时也上传了pypi。
1、项目源码地址如下:dingtalkchatbot
2、安装命令如下:
1
|
pip install dingtalkchatbot
|
3、支持功能如下:
- 支持text消息;
- 支持link消息;
- 支持markdown消息;
- 支持actioncard消息;
- 支持消息发送失败时自动通知;
- 支持python2、python3;
三、各消息类型使用示例
1
2
3
4
5
6
7
|
from dingtalkchatbot.chatbot import dingtalkchatbot
# webhook地址
webhook = 'https://oapi.dingtalk.com/robot/send?access_token=这里填写自己钉钉群自定义机器人的token'
# 初始化机器人小丁
xiaoding = dtalkchatbot(webhook)
# text消息@所有人
xiaoding.send_text(msg = '我就是小丁,小丁就是我!' , is_at_all = true)
|
1
2
3
|
# text消息之@指定用户
at_mobiles = [ '这里填写需要提醒的用户的手机号码,字符串或数字都可以' ]
xiaoding.send_text(msg = '我就是小丁,小丁就是我!' , at_mobiles = at_mobiles)
|
1
2
|
# link消息
xiaoding.send_link(title = '万万没想到,某小璐竟然...' , text = '故事是这样子的...' , message_url = 'http://www.kwongwah.com.my/?p=454748", pic_url="https://pbs.twimg.com/media/cewj7edwgae5eif.jpg' )
|
1
2
3
4
5
6
|
# markdown消息@所有人
xiaoding.send_markdown(title = '氧气文字' , text = '#### 广州天气\n'
'> 9度,西北风1级,空气良89,相对温度73%\n\n'
'> ![美景](http://www.sinaimg.cn/dy/slidenews/5_img/2013_28/453_28488_469248.jpg)\n'
'> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n' ,
is_at_all = true)
|
1
2
3
4
5
6
|
# markdown消息@指定用户
xiaoding.send_markdown(title = '氧气文字' , text = '#### 广州天气 @用户手机号\n'
'> 9度,西北风1级,空气良89,相对温度73%\n\n'
'> ![美景](http://www.sinaimg.cn/dy/slidenews/5_img/2013_28/453_28488_469248.jpg)\n'
'> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n' ,
at_mobiles = at_mobiles)
|
1
2
3
4
5
6
|
# feedcard消息类型
feedlink1 = feedlink(title = "氧气美女" , message_url = "https://www.dingtalk.com/" , pic_url = "https://unzippedtv.com/wp-content/uploads/sites/28/2016/02/asian.jpg" )
feedlink2 = feedlink(title = "氧眼美女" , message_url = "https://www.dingtalk.com/" , pic_url = "https://unzippedtv.com/wp-content/uploads/sites/28/2016/02/asian.jpg" )
feedlink3 = feedlink(title = "氧神美女" , message_url = "https://www.dingtalk.com/" , pic_url = "https://unzippedtv.com/wp-content/uploads/sites/28/2016/02/asian.jpg" )
links = [feedlink1.get_data(), feedlink2.get_data(), feedlink3.get_data()]
xiaoding.send_feed_card(links)
|
1
2
3
4
5
6
7
8
|
# actioncard整体跳转消息类型
btns1 = [{ "title" : "查看详情" , "actionurl" : "https://www.dingtalk.com/" }]
actioncard1 = actioncard(title = '万万没想到,竟然...' ,
text = '![选择](http://www.songshan.es/wp-content/uploads/2016/01/yin-yang.png) \n### 故事是这样子的...' ,
btns = btns1,
btn_orientation = 1 ,
hide_avatar = 1 )
xiaoding.send_action_card(actioncard1)
|
1
2
3
4
5
6
7
8
|
# actioncard独立跳转消息类型(双选项)
btns2 = [{ "title" : "支持" , "actionurl" : "https://www.dingtalk.com/" }, { "title" : "反对" , "actionurl" : "http://www.back china.com/news/2018/01/11/537468.html" }]
actioncard2 = actioncard(title = '万万没想到,竟然...' ,
text = '![选择](http://www.songshan.es/wp-content/uploads/2016/01/yin-yang.png) \n### 故事是这样子的...' ,
btns = btns2,
btn_orientation = 1 ,
hide_avatar = 1 )
xiaoding.send_action_card(actioncard2)
|
1
2
3
4
5
6
7
8
|
# actioncard独立跳转消息类型(列表选项)
btns3 = [{ "title" : "支持" , "actionurl" : "https://www.dingtalk.com/" }, { "title" : "中立" , "actionurl" : "https://www.dingtalk.com/" }, { "title" : "反对" , "actionurl" : "https://www.dingtalk.com/" }]
actioncard3 = actioncard(title = '万万没想到,竟然...' ,
text = '![选择](http://www.songshan.es/wp-content/uploads/2016/01/yin-yang.png) \n### 故事是这样子的...' ,
btns = btns3,
btn_orientation = 1 ,
hide_avatar = 1 )
xiaoding.send_action_card(actioncard3)
|
更多使用场景,尽情展开想象吧…
以上这篇钉钉群自定义机器人消息python封装的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/zhuifengshenku/article/details/79147479