利用 DingtalkChatbot 模块发送信息

487 阅读3分钟

「这是我参与11月更文挑战的第4天,活动详情查看:2021最后一次更文挑战」。

1. DingtalkChatbot 模块介绍

DingtalkChatbot 模块是一个钉钉自定义机器人消息的 Python 封装库。

github 地址:github.com/zhuifengshe…

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 方法进行信息发送。执行完成后,效果如下图所示。

图片描述