Python實現(xiàn)釘釘訂閱消息功能
釘釘設(shè)置機器人
首先在釘釘設(shè)置釘釘機器人
群設(shè)置—> 智能群助手—>添加機器人—>自定義


添加完成,得到一個Webhook API地址

Python腳本實現(xiàn)推送釘釘消息
釘釘官方給出了機器人接口的文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
但是該文檔只實現(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' #此處為釘釘機器人的webhook地址
print(send_msg(url,data))


如果要實現(xià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"+密鑰 當做簽名字符串 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算法計算簽名,得到 hmac_code
hmac_code_base64=base64.b64encode(hmac_code) #將hmac_code進行Base64 encode
sign = urllib.parse.quote(hmac_code_base64) #進行urlEncode,得到最終的簽名sign
authlist=[timestamp,sign]
return authlist
if __name__ == '__main__':
data = {
"msgtype": "link",
"link": {
"text": "",
"title": "時代的火車向前開",
"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": "這個即將發(fā)布的新版本,創(chuàng)始人xx稱它為“紅樹林”。
而在此之前,每當面臨重大升級,產(chǎn)品經(jīng)理們都會取一個應(yīng)景的代號,這一次,為什么是“紅樹林”?",
"title": "時代的火車向前開",
"picUrl": "",
"messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng
}
}

效果圖如下

markdown類型
{
"msgtype": "markdown",
"markdown": {
"title":"杭州天氣",
"text": "#### 杭州天氣 @156xxxx8827\n" +
"> 9度,西北風(fēng)1級,空氣良89,相對溫度73%\n\n" +
"> \n" +
"> ###### 10點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è)計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到 20 年前蘋果一個建立咖啡館的計劃",
"hideAvatar": "0",
"btnOrientation": "0",
"singleTitle" : "閱讀全文",
"singleURL" : "https://www.dingtalk.com/"
},
"msgtype": "actionCard"
}

效果圖如下

獨立跳轉(zhuǎn)ActionCard類型

{
"actionCard": {
"title": "喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身",
"text": "
### 喬布斯 20 年前想打造的蘋果咖啡廳
Apple Store 的設(shè)計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到 20 年前蘋果一個建立咖啡館的計劃",
"hideAvatar": "0",
"btnOrientation": "0",
"btns": [
{
"title": "內(nèi)容不錯",
"actionURL": "https://www.dingtalk.com/"
},
{
"title": "不感興趣",
"actionURL": "https://www.dingtalk.com/"
}
]
},
"msgtype": "actionCard"
}
效果圖如下

FeedCard類型
{
"feedCard": {
"links": [
{
"title": "時代的火車向前開",
"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": "時代的火車向前開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實現(xiàn)釘釘訂閱消息功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!
如果你覺得本文對你有幫助,歡迎轉(zhuǎn)載,煩請注明出處,謝謝!
相關(guān)文章
淺談PyTorch的可重復(fù)性問題(如何使實驗結(jié)果可復(fù)現(xiàn))
今天小編就為大家分享一篇淺談PyTorch的可重復(fù)性問題(如何使實驗結(jié)果可復(fù)現(xiàn)),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-02-02
Python實現(xiàn)將sqlite數(shù)據(jù)庫導(dǎo)出轉(zhuǎn)成Excel(xls)表的方法
這篇文章主要介紹了Python實現(xiàn)將sqlite數(shù)據(jù)庫導(dǎo)出轉(zhuǎn)成Excel(xls)表的方法,結(jié)合實例形式分析了Python針對sqlite數(shù)據(jù)庫的連接、讀取及使用寫操作包(xlwt)生成Excel表的相關(guān)實現(xiàn)技巧,需要的朋友可以參考下2017-07-07

