钉钉群自定义机器人消息Python封装的实例


Posted in Python onFebruary 20, 2019

一、钉钉群自定义机器人介绍

钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合Github、Gitlab等源码管理服务,实现源码更新同步;通过聚合Trello、JIRA等项目协调服务,实现项目信息同步;同事,支持Webhook协议的自定义接入,支持更多可能性,例如:将运维报警提醒、自动化测试的结果报告提醒、工作、生活日程安排(上班打卡、下班吃饭、健身、读书、生日、纪念日…)等等的提醒,通过自定义机器人聚合到钉钉中。

目前自定义机器人支持文本(text)、链接(link)、markdown三种消息格式、五种消息类型,详细信息请参考自定义机器人官方文档

二、安装使用

这么好用的功能,只要在群中添加好机器人,得到Webhoo地址,在命令行终端马上就可以一睹为快:

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、安装命令如下:

pip install DingtalkChatbot

3、支持功能如下:

- 支持Text消息;

- 支持Link消息;

- 支持Markdown消息;

- 支持ActionCard消息;

- 支持消息发送失败时自动通知;

- 支持Python2、Python3;

三、各消息类型使用示例

钉钉群自定义机器人消息Python封装的实例

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)

钉钉群自定义机器人消息Python封装的实例

# Text消息之@指定用户
at_mobiles = ['这里填写需要提醒的用户的手机号码,字符串或数字都可以']
xiaoding.send_text(msg='我就是小丁,小丁就是我!', at_mobiles=at_mobiles)

钉钉群自定义机器人消息Python封装的实例

# Link消息
xiaoding.send_link(title='万万没想到,某小璐竟然...', text='故事是这样子的...', message_url='http://www.kwongwah.com.my/?p=454748", pic_url="https://pbs.twimg.com/media/CEwj7EDWgAE5eIF.jpg')

钉钉群自定义机器人消息Python封装的实例

# 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)

钉钉群自定义机器人消息Python封装的实例

# 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)

钉钉群自定义机器人消息Python封装的实例

# 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)

钉钉群自定义机器人消息Python封装的实例

# 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)

钉钉群自定义机器人消息Python封装的实例

# 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)

钉钉群自定义机器人消息Python封装的实例

# 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封装的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 拷贝对象(深拷贝deepcopy与浅拷贝copy)
Sep 06 Python
Python中pip安装非PyPI官网第三方库的方法
Jun 02 Python
Python实现爬虫设置代理IP和伪装成浏览器的方法分享
May 07 Python
Python变量类型知识点总结
Feb 18 Python
python读取txt文件并取其某一列数据的示例
Feb 19 Python
Python操作远程服务器 paramiko模块详细介绍
Aug 07 Python
Python接口自动化判断元素原理解析
Feb 24 Python
Python学习之os模块及用法
Jun 03 Python
Python调用OpenCV实现图像平滑代码实例
Jun 19 Python
Python用户自定义异常的实现
Dec 25 Python
selenium+headless chrome爬虫的实现示例
Jan 08 Python
python 使用OpenCV进行简单的人像分割与合成
Feb 02 Python
python3实现zabbix告警推送钉钉的示例
Feb 20 #Python
python实现图书借阅系统
Feb 20 #Python
python 调用钉钉机器人的方法
Feb 20 #Python
python钉钉机器人运维脚本监控实例
Feb 20 #Python
Python实现钉钉发送报警消息的方法
Feb 20 #Python
python给微信好友定时推送消息的示例
Feb 20 #Python
linux查找当前python解释器的位置方法
Feb 20 #Python
You might like
PHP中date与gmdate的区别及默认时区设置
2014/05/12 PHP
PHP+Ajax检测用户名或邮件注册时是否已经存在实例教程
2014/08/23 PHP
PHP Ajax实现无刷新附件上传
2016/08/17 PHP
浅谈PHP的反射机制
2016/12/15 PHP
PHP实现简单的模板引擎功能示例
2017/09/02 PHP
零基础学JavaScript最新动画教程+iso光盘下载
2008/01/22 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
详解Bootstrap的aria-label和aria-labelledby应用
2016/01/04 Javascript
JS使用eval()动态创建变量的方法
2016/06/03 Javascript
微信小程序 WXDropDownMenu组件详解及实例代码
2016/10/24 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
jQuery EasyUI 折叠面板accordion的使用实例(分享)
2017/12/25 jQuery
vue页面离开后执行函数的实例
2018/03/13 Javascript
通过vue-router懒加载解决首次加载时资源过多导致的速度缓慢问题
2018/04/08 Javascript
Angular使用Restful的增删改
2018/12/28 Javascript
Vue中component标签解决项目组件化操作
2020/09/04 Javascript
微信小程序对图片进行canvas压缩的方法示例详解
2020/11/12 Javascript
jquery实现点击左右按钮切换图片
2021/01/27 jQuery
[41:37]DOTA2北京网鱼队选拔赛——冲击职业之路
2015/04/13 DOTA
Python查找函数f(x)=0根的解决方法
2015/05/07 Python
Python简单删除目录下文件以及文件夹的方法
2015/05/27 Python
python使用opencv读取图片的实例
2017/08/17 Python
django将图片上传数据库后在前端显式的方法
2018/05/25 Python
Python爬虫包BeautifulSoup异常处理(二)
2018/06/17 Python
Python 过滤错误log并导出的实例
2019/12/26 Python
tensorflow求导和梯度计算实例
2020/01/23 Python
一文读懂Python 枚举
2020/08/25 Python
python 实现一个简单的线性回归案例
2020/12/17 Python
客服专员岗位职责范本
2013/11/29 职场文书
物理教师自荐信范文
2013/12/28 职场文书
销售辞职报告范文
2014/01/12 职场文书
岗位廉政承诺书
2014/03/27 职场文书
感恩教师节演讲稿
2014/09/03 职场文书
工作感言一句话
2015/08/01 职场文书
pytest实现多进程与多线程运行超好用的插件
2022/07/15 Python
CSS 实现磨砂玻璃(毛玻璃)效果样式
2023/05/21 HTML / CSS