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

 更新时间:2019年02月20日 15:13:40   作者:DevinZhang2018  
今天小编就为大家分享一篇钉钉群自定义机器人消息Python封装的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

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

钉钉群机器人是钉钉群的一个高级扩展功能,然而使用起来却非常简单,只有注册一个钉钉账号即可,就可以将第三方服务的信息聚合到钉钉群中,实现信息的自动化同步,例如:通过聚合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的数据存储到mysql数据库中

    如何将python的数据存储到mysql数据库中

    在很多数据处理项目中,将数据存储到数据库中是非常常见的操作,下面这篇文章主要给大家介绍了关于如何将python的数据存储到mysql数据库中的相关资料,需要的朋友可以参考下
    2023-12-12
  • python实现AES和RSA加解密的方法

    python实现AES和RSA加解密的方法

    这篇文章主要为大家详细介绍了python实现AES和RSA加解密的方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-03-03
  • Jupyter notebook中如何添加Pytorch运行环境

    Jupyter notebook中如何添加Pytorch运行环境

    这篇文章主要介绍了Jupyter notebook中如何添加Pytorch运行环境,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-02-02
  • 如何用python清洗文件中的数据

    如何用python清洗文件中的数据

    数据清洗是整个数据分析过程的第一步,就像做一道菜之前需要先择菜洗菜一样。 数据分析师经常需要花费大量的时间来清洗数据或者转换格式,这个工作甚至会占整个数据分析流程的80%左右的时间。今天,就来学习一下Python的数据清洗吧!
    2021-06-06
  • Python生成MD5值的两种方法实例分析

    Python生成MD5值的两种方法实例分析

    这篇文章主要介绍了Python生成MD5值的两种方法,结合实例形式较为详细的分析了Python实现MD5加密的常见操作技巧,需要的朋友可以参考下
    2019-04-04
  • Python序列之list和tuple常用方法以及注意事项

    Python序列之list和tuple常用方法以及注意事项

    这篇文章主要介绍了Python序列之list和tuple常用方法以及注意事项,sequence(序列)是一组有顺序的对象的集合,序列可以包含一个或多个元素,也可以没有任何元素,序列有两种:list (表) 和 tuple(元组),需要的朋友可以参考下
    2015-01-01
  • 用Python实现数据的透视表的方法

    用Python实现数据的透视表的方法

    今天小编就为大家分享一篇用Python实现数据的透视表的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-11-11
  • pycharm远程连接vagrant虚拟机中mariadb数据库

    pycharm远程连接vagrant虚拟机中mariadb数据库

    这篇文章主要介绍了pycharm远程连接vagrant虚拟机中mariadb数据库,需要的朋友可以参考下
    2020-06-06
  • Python实现顺序查找的示例代码

    Python实现顺序查找的示例代码

    顺序查找(Sequential Search)是一种简单直观的搜索算法,用于在无序数组中查找特定元素,本文将介绍顺序查找的基本原理,并通过Python代码进行详细讲解,需要的可以参考一下
    2023-08-08
  • Python爬豆瓣电影实例

    Python爬豆瓣电影实例

    本篇文章给大家通过Python爬豆瓣电影实例对Python爬虫更深入的讲解,有兴趣的学习下。
    2018-02-02

最新评论