钉钉群自定义机器人消息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在windows下实现备份程序实例
Jul 04 Python
Python实现的密码强度检测器示例
Aug 23 Python
Python实现购物系统(示例讲解)
Sep 13 Python
python之matplotlib学习绘制动态更新图实例代码
Jan 23 Python
Python实现简易版的Web服务器(推荐)
Jan 29 Python
Python3.6连接Oracle数据库的方法详解
May 18 Python
Django 连接sql server数据库的方法
Jun 30 Python
djang常用查询SQL语句的使用代码
Feb 15 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
Feb 25 Python
详解Python装饰器
Mar 25 Python
Python Django模板之模板过滤器与自定义模板过滤器示例
Oct 18 Python
Python 调用 ES、Solr、Phoenix的示例代码
Nov 23 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
提取HTML标签
2006/10/09 PHP
超级简单的php+mysql留言本源码
2009/11/11 PHP
2014年最新推荐的10款 PHP 开发框架
2014/08/01 PHP
Yii框架getter与setter方法功能与用法分析
2019/10/22 PHP
JS正则中的RegExp对象对象
2012/11/07 Javascript
javascript简单性能问题及学习笔记
2014/02/04 Javascript
详解nodejs微信公众号开发——1.接入微信公众号
2017/04/10 NodeJs
详解bootstrap导航栏.nav与.navbar区别
2017/11/23 Javascript
JavaScript中变量、指针和引用功能与操作示例
2018/08/04 Javascript
解决vue单页路由跳转后scrollTop的问题
2018/09/03 Javascript
如何使用electron-builder及electron-updater给项目配置自动更新
2018/12/24 Javascript
node.js事件轮询机制原理知识点
2019/12/22 Javascript
ES2020 新特性(种草)
2020/01/12 Javascript
js实现全选和全不选
2020/07/28 Javascript
我所理解的JavaScript中的this指向
2020/09/04 Javascript
Python3编程实现获取阿里云ECS实例及监控的方法
2017/08/18 Python
python3+PyQt5使用数据库表视图
2018/04/24 Python
python实现验证码识别功能
2018/06/07 Python
python调用staf自动化框架的方法
2018/12/26 Python
使用Python3+PyQT5+Pyserial 实现简单的串口工具方法
2019/02/13 Python
python定时任务 sched模块用法实例
2019/11/04 Python
Python如何把多个PDF文件合并代码实例
2020/02/13 Python
python实现引用其他路径包里面的模块
2020/03/09 Python
使用CSS3实现圆角,阴影,透明
2014/12/23 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
偷看我的初中毕业鉴定
2014/01/29 职场文书
网吧最新创业计划书范文
2014/03/27 职场文书
大学生社会实践方案
2014/05/11 职场文书
房地产活动策划方案
2014/05/14 职场文书
世界遗产导游词
2015/02/13 职场文书
管理失职检讨书
2015/05/05 职场文书
爱国主义影片观后感
2015/06/18 职场文书
导游词之无锡丝业博物馆
2019/11/12 职场文书
浅谈TypeScript 索引签名的理解
2021/10/16 Javascript
排查并解决Oracle sysaux表空间异常增长
2022/04/20 Oracle