利用 DingtalkChatbot 模块发送信息
上一小节中结合 requests 完成了自定义机器人信息的发送,但在传递参数时,配置内容在使用较为繁琐,本小节将介绍一种使用更加便捷的方法来实现信息的发送。
1. DingtalkChatbot 模块介绍
DingtalkChatbot 模块是一个钉钉自定义机器人消息的 Python 封装库。
DingtalkChatbot 模块支持如下功能:
- 支持 Text 消息;
- 支持 Link 消息;
- 支持 image 表情消息;
- 支持 Markdown 消息;
- 支持 ActionCard 消息;
- 支持消息发送失败时自动通知(默认 fail_notice=False 不通知,开发者可根据返回的消息发送结果自行判断处理);
- 支持设置消息链接打开方式(默认 pc_slide=False,跳转至浏览器打开,pc_slide=True,则在 PC 端侧边栏打开);
- 支持钉钉官方消息发送频率限制限制:每个机器人每分钟最多发送 20 条;
支持 Python2、Python3; - 支持钉钉企业内部机器人自定义 outgoing 机器人消息发送;
- 支持最新版钉钉机器人加密设置密钥验证。
2. DingtalkChatbot 模块使用
DingtalkChatbot 模块是 Python 的第三方库,使用前需要通过以下命令进行安装:
pip install DingtalkChatbot
DingtalkChatbot 安装完成后,使用步骤如下:
步骤 1:导入 DingtalkChatbot 模块
from dingtalkchatbot.chatbot import DingtalkChatbot
步骤 2:初始化机器人
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
步骤 3:信息发送
利用 DingtalkChatbot 模块封装好的方法,完成各类型信息的发送。
下面将介绍 Python 第三方库 DingtalkChatbot 模块完成各类型信息的发送。
3. 发送信息
接下来,针对 DingtalkChatbot 提供的信息发送方法进行讲解,这里根据信息类型进行划分。
3.1 发送普通文本
from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
xiaoq.send_text(msg='监测预警,大家好,我是小Q', is_at_all=True)
代码解释:首先通过 DingtalkChatbot () 方法初始化机器人,通过 send_text () 方法发送普通文本信息,msg 为发送的内容,is_at_all 为是否 @全员。执行完成后,效果如下图所示。
3.2 发送图片
from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
xiaoq.send_image(pic_url='https://www.imooc.com/static/img/column/icon.png')
代码解释:通过 send_image () 方法发送图片,pic_url 为指定的图片地址,执行完成后,效果如下图所示。
3.3 发送 Link 信息
from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
xiaoq.send_link(title='监测预警,这里有一条重要信息', text='API接口字段异常', message_url="https://www.imooc.com", pic_url="https://www.imooc.com/static/img/column/icon.png")
代码解释:通过 send_link () 方法发送带 Link 信息内容,其中 title 为标题内容,text 为简介内容,message_url 为 Link 跳转的链接地址,pic_url 为显示的图片地址。执行完成后,效果如下图所示。
3.4 发送 markdown 信息
from dingtalkchatbot.chatbot import DingtalkChatbot
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
xiaoq.send_markdown(title='监测预警', text='#### 北京天气\n'
'> 9度,西北风1级\n'
'> 空气良89\n'
'> 相对温度73%\n',
is_at_all=True)
代码解释:通过 send_markdown () 方法发送 markdown 语法的信息,其中 title 为标题内容,text 为正文内容。执行完成后,效果如下图所示。
3.5 发送 FeedCard 消息
from dingtalkchatbot.chatbot import DingtalkChatbot,CardItem
webhook = "https://oapi.dingtalk.com/robot/send?access_token=c01697dd3c97efecd727491693a2ead2d668e8c5dabeb0c3604f545821fc72b7"
xiaoq = DingtalkChatbot(webhook)
card1 = CardItem(title="监测预警-1", url="https://www.imooc.com", pic_url="https://www.imooc.com/static/img/column/icon.png")
card2 = CardItem(title="监测预警-2", url="https://www.imooc.com", pic_url="https://www.imooc.com/static/img/column/icon.png")
card3 = CardItem(title="监测预警-3", url="https://www.imooc.com", pic_url="https://www.imooc.com/static/img/column/icon.png")
cards = [card1, card2, card3]
xiaoq.send_feed_card(cards)
代码解释:在 import 处导入 CardItem 后,通过 CardItem 初始化三条信息内容,包括标题、链接地址、图片地址,初始化完成后,调用 send_feed_card 方法进行信息发送。执行完成后,效果如下图所示。
4. 小结
本节课程我们主要学习了 DingtalkChatbot 模块介绍与安装。本节课程的重点如下:
- 了解 DingtalkChatbot 模块的作用;
- 掌握 DingtalkChatbot 模块使用步骤;
- 掌握 DingtalkChatbot 模块发送各类型信息的使用方法;