钉钉群自定义机器人消息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中函数总结之装饰器闭包详解
Jun 12 Python
python 队列详解及实例代码
Oct 18 Python
python中关于for循环的碎碎念
Jun 30 Python
Python 实现淘宝秒杀的示例代码
Jan 02 Python
使用python编写简单的小程序编译成exe跑在win10上
Jan 15 Python
Python实现的朴素贝叶斯算法经典示例【测试可用】
Jun 13 Python
python实现三次样条插值
Dec 17 Python
python实现三维拟合的方法
Dec 29 Python
Python Pandas分组聚合的实现方法
Jul 02 Python
Python3 使用selenium插件爬取苏宁商家联系电话
Dec 23 Python
VS2019+python3.7+opencv4.1+tensorflow1.13配置详解
Apr 16 Python
Python实现批量将文件复制到新的目录中再修改名称
Apr 12 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
PHPlet在Windows下的安装
2006/10/09 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
2007/04/03 PHP
深入php var_dump()函数的详解
2013/06/05 PHP
PHP图片处理之使用imagecopy函数添加图片水印实例
2014/11/19 PHP
PHP call_user_func和call_user_func_array函数的简单理解与应用分析
2019/11/25 PHP
用脚本调用样式的几种方法
2006/12/09 Javascript
北京奥运官方网站幻灯切换效果flash版打包下载
2008/01/30 Javascript
js设置组合快捷键/tabindex功能的方法
2013/11/21 Javascript
原生js模拟淘宝购物车项目实战
2015/11/18 Javascript
jQuery 移动端artEditor富文本编辑器
2016/01/11 Javascript
基于javascript制作微博发布栏效果
2016/04/04 Javascript
基于jQuery对象和DOM对象和字符串之间的转化实例
2017/08/08 jQuery
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
微信小程序 WXML节点信息查询详解
2019/07/29 Javascript
详解 javascript对象创建模式
2020/10/30 Javascript
TensorFlow saver指定变量的存取
2018/03/10 Python
python实现人脸识别经典算法(一) 特征脸法
2018/03/13 Python
Python设计模式之策略模式实例详解
2019/01/21 Python
通过字符串导入 Python 模块的方法详解
2019/10/27 Python
python3 字符串知识点学习笔记
2020/02/08 Python
详解python with 上下文管理器
2020/09/02 Python
Python之字典对象的几种创建方法
2020/09/30 Python
python自动化发送邮件实例讲解
2021/01/04 Python
HTML5 Canvas中绘制矩形实例
2015/01/01 HTML / CSS
html5 移动端视频video的android兼容(去除播放控件、全屏)
2020/03/26 HTML / CSS
德国汉莎航空中国官网: Lufthansa中国
2017/03/30 全球购物
网吧收银员岗位职责
2013/12/14 职场文书
舞蹈专业大学生职业规划范文
2014/03/12 职场文书
奉献家乡演讲稿
2014/09/16 职场文书
同意转租证明
2015/06/24 职场文书
详解Django的MVT设计模式
2021/04/29 Python
MySQL七种JOIN类型小结
2021/10/24 MySQL
关于PHP数组迭代器的使用方法实例
2021/11/17 PHP
防止web项目中的SQL注入
2021/12/06 MySQL
图文详解nginx日志切割的实现
2022/01/18 Servers
一级电子管军用接收机测评
2022/04/05 无线电