钉钉群自定义机器人消息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-基础-入门 简介
Aug 09 Python
Python中自定义函数的教程
Apr 27 Python
Python实现获取磁盘剩余空间的2种方法
Jun 07 Python
python多线程之事件Event的使用详解
Apr 27 Python
Pycharm 设置默认头的图文教程
Jan 17 Python
Python绘制堆叠柱状图的实例
Jul 09 Python
django将网络中的图片,保存成model中的ImageField的实例
Aug 07 Python
Python collections模块使用方法详解
Aug 28 Python
你还在@微信官方?聊聊Python生成你想要的微信头像
Sep 25 Python
django实现将后台model对象转换成json对象并传递给前端jquery
Mar 16 Python
python MultipartEncoder传输zip文件实例
Apr 07 Python
详解用Python调用百度地图正/逆地理编码API
Jul 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&mysql(三)
2006/10/09 PHP
微信公众号开发之微信公共平台消息回复类实例
2014/11/14 PHP
php中使用gd库实现远程图片下载实例
2015/05/12 PHP
PHP微信开发之根据用户回复关键词\位置返回附近信息
2016/06/24 PHP
PHP设计模式(三)建造者模式Builder实例详解【创建型】
2020/05/02 PHP
Yii redis集合的基本使用教程
2020/06/14 PHP
json 入门基础教程 推荐
2009/10/31 Javascript
JQuery 自定义CircleAnimation,Animate方法学习笔记
2011/07/10 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
基于jQuery实现复选框是否选中进行答题提示
2015/12/10 Javascript
JavaScript获取当前运行脚本文件所在目录的方法
2016/02/03 Javascript
浅析在javascript中创建对象的各种模式
2016/05/06 Javascript
JavaScript禁止用户多次提交的两种方法
2016/07/24 Javascript
javascript图片预览和上传(兼容IE)
2017/03/15 Javascript
vue 粒子特效的示例代码
2017/09/19 Javascript
Bootstrap Table中的多选框删除功能
2018/07/15 Javascript
layui问题之模拟table表格中的选中按钮选中事件的方法
2019/09/20 Javascript
跟老齐学Python之折腾一下目录
2014/10/24 Python
浅谈Python爬取网页的编码处理
2016/11/04 Python
python实现各进制转换的总结大全
2017/06/18 Python
使用python的pandas库读取csv文件保存至mysql数据库
2018/08/20 Python
python银行系统实现源码
2019/10/25 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
基于python爬取有道翻译过程图解
2020/03/31 Python
伦敦高级内衣品牌:Agent Provocateur(大内密探)
2016/08/23 全球购物
美国护肤咨询及美容产品电商:Askderm
2017/02/24 全球购物
ASOS西班牙官网:英国在线时尚和美容零售商
2020/01/10 全球购物
《理想的风筝》教学反思
2014/04/11 职场文书
党员身份证明材料
2015/06/19 职场文书
入学证明
2015/06/23 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书
父亲节感言
2015/08/03 职场文书
大学生党课感想
2015/08/11 职场文书
DIY胆机必读:各国电子管评价
2022/04/06 无线电
Java实现添加条码或二维码到Word文档
2022/06/01 Java/Android
Django数据库(SQlite)基本入门使用教程
2022/07/07 Python