釘釘群自定義機(jī)器人消息Python封裝的實(shí)例
一、釘釘群自定義機(jī)器人介紹
釘釘群機(jī)器人是釘釘群的一個(gè)高級(jí)擴(kuò)展功能,然而使用起來卻非常簡(jiǎn)單,只有注冊(cè)一個(gè)釘釘賬號(hào)即可,就可以將第三方服務(wù)的信息聚合到釘釘群中,實(shí)現(xiàn)信息的自動(dòng)化同步,例如:通過聚合Github、Gitlab等源碼管理服務(wù),實(shí)現(xiàn)源碼更新同步;通過聚合Trello、JIRA等項(xiàng)目協(xié)調(diào)服務(wù),實(shí)現(xiàn)項(xiàng)目信息同步;同事,支持Webhook協(xié)議的自定義接入,支持更多可能性,例如:將運(yùn)維報(bào)警提醒、自動(dòng)化測(cè)試的結(jié)果報(bào)告提醒、工作、生活日程安排(上班打卡、下班吃飯、健身、讀書、生日、紀(jì)念日…)等等的提醒,通過自定義機(jī)器人聚合到釘釘中。
目前自定義機(jī)器人支持文本(text)、鏈接(link)、markdown三種消息格式、五種消息類型,詳細(xì)信息請(qǐng)參考自定義機(jī)器人官方文檔
二、安裝使用
這么好用的功能,只要在群中添加好機(jī)器人,得到Webhoo地址,在命令行終端馬上就可以一睹為快:
curl 'https://oapi.dingtalk.com/robot/send?access_token=xxxxxxxx' \
-H 'Content-Type: application/json' \
-d '
{"msgtype": "text",
"text": {
"content": "我就是我, 是不一樣的煙火"
}
}'
由于各種消息調(diào)用,官方只提供Java語言的封裝,平時(shí)使用Python比較多,為了更方便平時(shí)自動(dòng)化項(xiàng)目的使用,周末花了點(diǎn)時(shí)間用Python語言對(duì)各種消息類型進(jìn)行了一一封裝,代碼已開源在GitHub上,同時(shí)也上傳了PyPI。
1、項(xiàng)目源碼地址如下:DingtalkChatbot
2、安裝命令如下:
pip install DingtalkChatbot
3、支持功能如下:
- 支持Text消息;
- 支持Link消息;
- 支持Markdown消息;
- 支持ActionCard消息;
- 支持消息發(fā)送失敗時(shí)自動(dòng)通知;
- 支持Python2、Python3;
三、各消息類型使用示例

from dingtalkchatbot.chatbot import DingtalkChatbot # WebHook地址 webhook = 'https://oapi.dingtalk.com/robot/send?access_token=這里填寫自己釘釘群自定義機(jī)器人的token' # 初始化機(jī)器人小丁 xiaoding = DtalkChatbot(webhook) # Text消息@所有人 xiaoding.send_text(msg='我就是小丁,小丁就是我!', is_at_all=True)

# Text消息之@指定用戶 at_mobiles = ['這里填寫需要提醒的用戶的手機(jī)號(hào)碼,字符串或數(shù)字都可以'] 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度,西北風(fēng)1級(jí),空氣良89,相對(duì)溫度73%\n\n'
'> \n'
'> ###### 10點(diǎn)20分發(fā)布 [天氣](http://www.thinkpage.cn/) \n',
is_at_all=True)

# Markdown消息@指定用戶
xiaoding.send_markdown(title='氧氣文字', text='#### 廣州天氣 @用戶手機(jī)號(hào)\n'
'> 9度,西北風(fēng)1級(jí),空氣良89,相對(duì)溫度73%\n\n'
'> \n'
'> ###### 10點(diǎn)20分發(fā)布 [天氣](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整體跳轉(zhuǎn)消息類型
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獨(dú)立跳轉(zhuǎn)消息類型(雙選項(xiàng))
btns2 = [{"title": "支持", "actionURL": "https://www.dingtalk.com/"}, {"title": "反對(duì)", "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獨(dú)立跳轉(zhuǎn)消息類型(列表選項(xiàng))
btns3 = [{"title": "支持", "actionURL": "https://www.dingtalk.com/"}, {"title": "中立", "actionURL": "https://www.dingtalk.com/"}, {"title": "反對(duì)", "actionURL": "https://www.dingtalk.com/"}]
actioncard3 = ActionCard(title='萬萬沒想到,竟然...',
text=' \n### 故事是這樣子的...',
btns=btns3,
btn_orientation=1,
hide_avatar=1)
xiaoding.send_action_card(actioncard3)
更多使用場(chǎng)景,盡情展開想象吧…
以上這篇釘釘群自定義機(jī)器人消息Python封裝的實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
如何將python的數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫(kù)中
在很多數(shù)據(jù)處理項(xiàng)目中,將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫(kù)中是非常常見的操作,下面這篇文章主要給大家介紹了關(guān)于如何將python的數(shù)據(jù)存儲(chǔ)到mysql數(shù)據(jù)庫(kù)中的相關(guān)資料,需要的朋友可以參考下2023-12-12
python實(shí)現(xiàn)AES和RSA加解密的方法
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)AES和RSA加解密的方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-03-03
Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境
這篇文章主要介紹了Jupyter notebook中如何添加Pytorch運(yùn)行環(huán)境,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02
Python序列之list和tuple常用方法以及注意事項(xiàng)
這篇文章主要介紹了Python序列之list和tuple常用方法以及注意事項(xiàng),sequence(序列)是一組有順序的對(duì)象的集合,序列可以包含一個(gè)或多個(gè)元素,也可以沒有任何元素,序列有兩種:list (表) 和 tuple(元組),需要的朋友可以參考下2015-01-01
用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法
今天小編就為大家分享一篇用Python實(shí)現(xiàn)數(shù)據(jù)的透視表的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-11-11
pycharm遠(yuǎn)程連接vagrant虛擬機(jī)中mariadb數(shù)據(jù)庫(kù)
這篇文章主要介紹了pycharm遠(yuǎn)程連接vagrant虛擬機(jī)中mariadb數(shù)據(jù)庫(kù),需要的朋友可以參考下2020-06-06

