詳解使用python3.7配置開發(fā)釘釘群自定義機器人(2020年新版攻略)
最近疫情比較嚴重,很多公司依靠阿里旗下的辦公軟件釘釘來進行遠程辦公,當然了,釘釘這個產(chǎn)品真的是讓人一言難盡,要多難用有多難用,真的讓人覺得阿里的pm都是腦殘才會設計出這種腦殘產(chǎn)品,不過吐槽歸吐槽,該用還得用,雖然釘釘別的功能很雞肋,但是機器人這個功能還是讓人眼前一亮,屬于比較極客的功能,它可以將第三方服務的信息聚合到釘釘群中,實現(xiàn)信息的自動化同步,例如:通過聚合Github、Gitlab等源碼管理服務,實現(xiàn)源碼更新同步;通過聚合Trello、JIRA等項目協(xié)調(diào)服務,實現(xiàn)項目信息同步;同事,支持Webhook協(xié)議的自定義接入,支持更多可能性,例如:將運維報警提醒、自動化測試的結(jié)果報告提醒、工作、生活日程安排(上班打卡、下班吃飯、健身、讀書、生日、紀念日...)等等的提醒,通過自定義機器人聚合到釘釘中。
不過關于釘釘機器人網(wǎng)上的一些攻略年代都比較久遠,代碼很多都基于python2,為了與時俱進,我們嘗試用python3.7來開發(fā)配置釘釘自定義機器人。
首先明確一點,釘釘自定義機器人早就不支持在手機端創(chuàng)建了,所以打開你的pc端或者mac端的釘釘客戶端,在需要機器人的聊天群界面,點擊智能群助手
隨后點擊添加機器人按鈕
此時能看到很多已經(jīng)封裝好的第三方機器人,本次我們選擇自定義機器人
值得一提的是,釘釘?shù)臋C器人基于webhook協(xié)議,webhook呢是一個api概念,是微服務api的使用范式之一,也被成為反向api,即前端不主動發(fā)送請求,完全由后端推送,有機會會單門寫一篇文章闡述webhook
在添加機器人界面里,填寫一些機器人的信息
需要注意的是,在安全設置一欄里,我們選擇加簽的方式來驗證,在此說明一下,釘釘機器人的安全策略有三種,第一種是使用關鍵字,就是說你推送的消息里必須包含你創(chuàng)建機器人時定義的關鍵字,如果不包含就推送不了消息,第二種就是使用加密簽名,第三種是定義幾個ip源,非這些源的請求會被拒絕,綜合來看還是第二種又安全又靈活。
創(chuàng)建成功后,系統(tǒng)會分配給你一個webhook地址,這個地址需要保存一下,地址中有唯一的accesstoken
ok,那么怎么利用這個地址讓你的機器人推送消息呢?查看官方文檔: https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
發(fā)現(xiàn)文檔居然還是python2.0的版本,好吧,我們自己來翻譯成3.0
import time import hmac import hashlib import base64 import urllib.parse timestamp = str(round(time.time() * 1000)) secret = 'SEC90485937c351bfaed41fea8eda5f1e155bbf22842d5f9d6871999e05822fd894' secret_enc = secret.encode('utf-8') string_to_sign = '{}n{}'.format(timestamp, secret) string_to_sign_enc = string_to_sign.encode('utf-8') hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() sign = urllib.parse.quote(base64.b64encode(hmac_code)) # print(timestamp) # print(sign) import requests,json #導入依賴庫 headers={'Content-Type': 'application/json'} #定義數(shù)據(jù)類型 webhook = 'https://oapi.dingtalk.com/robot/send?access_token=f0ca7636f5812fe4815c97a72de9a7cc780c414c258b6c9a631036b1d0f49e3b×tamp='+timestamp+"&sign="+sign #定義要發(fā)送的數(shù)據(jù) #"at": {"atMobiles": "['"+ mobile + "']" data = { "msgtype": "text", "text": {"content": '都誰沒加到群里來?小心升不了班'}, "isAtAll": True} res = requests.post(webhook, data=json.dumps(data), headers=headers) #發(fā)送post請求 print(res.text)
推送效果是下面這樣的:
原文轉(zhuǎn)載自「劉悅的技術(shù)博客」 v3u.cn/a_id_132
到此這篇關于詳解使用python3.7配置開發(fā)釘釘群自定義機器人(2020年新版攻略)的文章就介紹到這了,更多相關python3.7 釘釘群自定義機器人內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
如何在Python中將字符串轉(zhuǎn)換為數(shù)組詳解
最近在用Python,做一個小腳本,有個操作就是要把內(nèi)容換成數(shù)組對象再進行相關操作,下面這篇文章主要給大家介紹了關于如何在Python中將字符串轉(zhuǎn)換為數(shù)組的相關資料,需要的朋友可以參考下2022-12-12python之PyQt按鈕右鍵菜單功能的實現(xiàn)代碼
這篇文章主要介紹了python PyQt按鈕右鍵菜單功能的實現(xiàn)代碼,代碼簡單易懂,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2019-08-08詳解Ubuntu16.04安裝Python3.7及其pip3并切換為默認版本
這篇文章主要介紹了詳解Ubuntu16.04安裝Python3.7及其pip3并切換為默認版本,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-02-02PyTorch-Forecasting一個新的時間序列預測庫使用詳解
這篇文章主要為大家介紹了PyTorch-Forecasting一個新的時間序列預測庫示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-05-05