利用 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='http://www.xianlaiwan.cn/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="http://www.xianlaiwan.cn", pic_url="http://www.xianlaiwan.cn/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="http://www.xianlaiwan.cn", pic_url="http://www.xianlaiwan.cn/static/img/column/icon.png")
card2 = CardItem(title="監測預警-2", url="http://www.xianlaiwan.cn", pic_url="http://www.xianlaiwan.cn/static/img/column/icon.png")
card3 = CardItem(title="監測預警-3", url="http://www.xianlaiwan.cn", pic_url="http://www.xianlaiwan.cn/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 模塊發送各類型信息的使用方法;