Python实现钉钉群自定义机器人消息发送:封装库DingtalkChatbot使用指南
本文介绍如何利用Python封装钉钉群自定义机器人接口,实现Text、Link、Markdown及ActionCard等多种消息类型的自动化发送。通过开源库DingtalkChatbot,开发者可轻松集成运维报警、项目同步等场景,支持Python2/3环境,并提供完整的代码示例与安装步骤,帮助快速构建自动化通知系统。
一、钉钉群自定义机器人介绍
钉钉群机器人作为钉钉群的高级扩展功能,其配置过程十分简便,仅需拥有钉钉账号即可启用。该功能旨在将第三方服务的信息聚合至钉钉群内,实现信息的自动化同步。例如,可对接Github、Gitlab等源码管理平台,实时同步代码更新;或连接Trello、JIRA等项目协作工具,同步项目进度。此外,它支持通过Webhook协议进行自定义接入,拓展了应用场景,如将运维报警、自动化测试结果、日程提醒(包括上下班打卡、健身、生日、纪念日等)聚合到钉钉中,实现多源信息的统一推送。
当前自定义机器人支持文本(text)、链接(link)、markdown三种基础消息格式,以及五种具体的消息类型。关于各类型的详细规范与限制,请参阅钉钉官方提供的自定义机器人文档。
二、安装使用
该功能实用且配置便捷,只需在群内添加机器人并获取Webhook地址,即可在命令行终端直接测试发送效果。
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仓库,方便Python开发者直接调用。
1、项目源码地址如下:DingtalkChatbot
2、安装命令如下:
pip install DingtalkChatbot
3、支持功能如下:
- 支持Text消息;
- 支持Link消息;
- 支持Markdown消息;
- 支持ActionCard消息;
- 支持消息发送失败时自动通知;
- 支持Python2、Python3;
三、各消息类型使用示例

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)

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

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

# Markdown消息@所有人
xiaoding.send_markdown(title='氧气文字', text='#### 广州天气\n'
'> 9度,西北风1级,空气良89,相对温度73%\n\n'
'> \n'
'> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n',
is_at_all=True)

# Markdown消息@指定用户
xiaoding.send_markdown(title='氧气文字', text='#### 广州天气 @用户手机号\n'
'> 9度,西北风1级,空气良89,相对温度73%\n\n'
'> \n'
'> ###### 10点20分发布 [天气](http://www.thinkpage.cn/) \n',
at_mobiles=at_mobiles)

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

# ActionCard整体跳转消息类型
btns1 = [{"title": "查看详情", "actionURL": "https://www.dingtalk.com/"}]
actioncard1 = ActionCard(title='万万没想到,竟然...',
text=' \n### 故事是这样子的...',
btns=btns1,
btn_orientation=1,
hide_avatar=1)
xiaoding.send_action_card(actioncard1)

# 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=' \n### 故事是这样子的...',
btns=btns2,
btn_orientation=1,
hide_avatar=1)
xiaoding.send_action_card(actioncard2)

# ActionCard独立跳转消息类型(列表选项)
btns3 = [{"title": "支持", "actionURL": "https://www.dingtalk.com/"}, {"title": "中立", "actionURL": "https://www.dingtalk.com/"}, {"title": "反对", "actionURL": "https://www.dingtalk.com/"}]
actioncard3 = ActionCard(title='万万没想到,竟然...',
text=' \n### 故事是这样子的...',
btns=btns3,
btn_orientation=1,
hide_avatar=1)
xiaoding.send_action_card(actioncard3)
更多使用场景,尽情展开想象吧…
以上这篇钉钉群自定义机器人消息Python封装的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持本站。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













