Python實(shí)現(xiàn)釘釘訂閱消息功能
釘釘設(shè)置機(jī)器人
首先在釘釘設(shè)置釘釘機(jī)器人
群設(shè)置—> 智能群助手—>添加機(jī)器人—>自定義
添加完成,得到一個(gè)Webhook API地址
Python腳本實(shí)現(xiàn)推送釘釘消息
釘釘官方給出了機(jī)器人接口的文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
但是該文檔只實(shí)現(xiàn)了JAVA和PHP的示例。以下是python腳本的示例。
# -*- coding: utf-8 -*- """Created on Mon Jan 13 11:18:59 2020 python3 @author: 謝公子 """ import json import requests def send_msg(url,data): headers = {'Content-Type': 'application/json;charset=utf-8'} r = requests.post(url,data = json.dumps(data),headers=headers) return r.text if __name__ == '__main__': data = { "msgtype": "text", "text": { "content": "hello,word!test" }, } url = 'https://oapi.dingtalk.com/robot/send?access_token=xx' #此處為釘釘機(jī)器人的webhook地址 print(send_msg(url,data))
如果要實(shí)現(xiàn)簽名認(rèn)證,如下
# -*- coding: utf-8 -*- """ Created on Mon Jan 13 11:18:59 2020 python3 @author: mi """ import json import requests import time import hmac import hashlib import base64 import urllib from urllib import parse def send_msg(url,data): headers = {'Content-Type': 'application/json;charset=utf-8'} r = requests.post(url,data = json.dumps(data),headers=headers) return r.text def auth(secret): timestamp = round(time.time() * 1000) secret = secret #秘鑰 secret_enc = bytes(secret.encode('utf-8')) string_to_sign = '{}\n{}'.format(timestamp, secret) #把 timestamp+"\n"+密鑰 當(dāng)做簽名字符串 string_to_sign string_to_sign_enc = bytes(string_to_sign.encode('utf-8')) hmac_code = hmac.new(secret_enc, string_to_sign_enc, digestmod=hashlib.sha256).digest() #使用HmacSHA256算法計(jì)算簽名,得到 hmac_code hmac_code_base64=base64.b64encode(hmac_code) #將hmac_code進(jìn)行Base64 encode sign = urllib.parse.quote(hmac_code_base64) #進(jìn)行urlEncode,得到最終的簽名sign authlist=[timestamp,sign] return authlist if __name__ == '__main__': data = { "msgtype": "link", "link": { "text": "", "title": "時(shí)代的火車向前開", "messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng" } } authlist = auth("你的簽名") url = "https://oapi.dingtalk.com/robot/send?access_token=xxx"+"×tamp="+str(authlist[0])+"&sign="+authlist[1] print(send_msg(url,data))
消息類型
text類型 { "msgtype": "text", "text": { "content": "我就是我, 是不一樣的煙火@156xxxx8827" }, "at": { "atMobiles": [ "156xxxx8827", "189xxxx8325" ], "isAtAll": false } }
效果圖如下
link類型 { "msgtype": "link", "link": { "text": "這個(gè)即將發(fā)布的新版本,創(chuàng)始人xx稱它為“紅樹林”。 而在此之前,每當(dāng)面臨重大升級(jí),產(chǎn)品經(jīng)理們都會(huì)取一個(gè)應(yīng)景的代號(hào),這一次,為什么是“紅樹林”?", "title": "時(shí)代的火車向前開", "picUrl": "", "messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng } }
效果圖如下
markdown類型 { "msgtype": "markdown", "markdown": { "title":"杭州天氣", "text": "#### 杭州天氣 @156xxxx8827\n" + "> 9度,西北風(fēng)1級(jí),空氣良89,相對(duì)溫度73%\n\n" + "> \n" + "> ###### 10點(diǎn)20分發(fā)布 [天氣](http://www.thinkpage.cn/) \n" }, "at": { "atMobiles": [ "156xxxx8827", "189xxxx8325" ], "isAtAll": false } }
效果圖如下
整體跳轉(zhuǎn)ActionCard類型
{ "actionCard": { "title": "喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身", "text": " ### 喬布斯 20 年前想打造的蘋果咖啡廳 Apple Store 的設(shè)計(jì)正從原來(lái)滿滿的科技感走向生活化,而其生活化的走向其實(shí)可以追溯到 20 年前蘋果一個(gè)建立咖啡館的計(jì)劃", "hideAvatar": "0", "btnOrientation": "0", "singleTitle" : "閱讀全文", "singleURL" : "https://www.dingtalk.com/" }, "msgtype": "actionCard" }
效果圖如下
獨(dú)立跳轉(zhuǎn)ActionCard類型
{ "actionCard": { "title": "喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身", "text": " ### 喬布斯 20 年前想打造的蘋果咖啡廳 Apple Store 的設(shè)計(jì)正從原來(lái)滿滿的科技感走向生活化,而其生活化的走向其實(shí)可以追溯到 20 年前蘋果一個(gè)建立咖啡館的計(jì)劃", "hideAvatar": "0", "btnOrientation": "0", "btns": [ { "title": "內(nèi)容不錯(cuò)", "actionURL": "https://www.dingtalk.com/" }, { "title": "不感興趣", "actionURL": "https://www.dingtalk.com/" } ] }, "msgtype": "actionCard" }
效果圖如下
FeedCard類型 { "feedCard": { "links": [ { "title": "時(shí)代的火車向前開", "messageURL": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI", "picURL": "https://www.dingtalk.com/" }, { "title": "時(shí)代的火車向前開2", "messageURL": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng==&mid=2650316842&idx=1&sn=60da3ea2b29f1dcc43a7c8e4a7c97a16&scene=2&srcid=09189AnRJEdIiWVaKltFzNTw&from=timeline&isappinstalled=0&key=&ascene=2&uin=&devicetype=android-23&version=26031933&nettype=WIFI", "picURL": "https://www.dingtalk.com/" } ] }, "msgtype": "feedCard" }
效果圖如下
總結(jié)
以上所述是小編給大家介紹的Python實(shí)現(xiàn)釘釘訂閱消息功能,希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)腳本之家網(wǎng)站的支持!
如果你覺(jué)得本文對(duì)你有幫助,歡迎轉(zhuǎn)載,煩請(qǐng)注明出處,謝謝!
相關(guān)文章
Python Charles抓包配置實(shí)現(xiàn)流程圖解
這篇文章主要介紹了Python Charles抓包實(shí)現(xiàn)流程圖解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09Python面向?qū)ο蠖鄳B(tài)實(shí)現(xiàn)原理及代碼實(shí)例
這篇文章主要介紹了Python面向?qū)ο蠖鄳B(tài)實(shí)現(xiàn)原理及代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2020-09-09flask路由分模塊管理及自定義restful響應(yīng)格式詳解
這篇文章主要為大家介紹了flask路由分模塊管理及自定義restful響應(yīng)格式詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08python中用logging實(shí)現(xiàn)日志滾動(dòng)和過(guò)期日志刪除功能
這篇文章主要介紹了python中用logging實(shí)現(xiàn)日志滾動(dòng)和過(guò)期日志刪除功能,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-08-08用pickle存儲(chǔ)Python的原生對(duì)象方法
下面小編就為大家?guī)?lái)一篇用pickle存儲(chǔ)Python的原生對(duì)象方法。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-04-04