您好,登錄后才能下訂單哦!
釘釘設置機器人
首先在釘釘設置釘釘機器人
群設置—> 智能群助手—>添加機器人—>自定義
添加完成,得到一個Webhook API地址
Python腳本實現推送釘釘消息
釘釘官方給出了機器人接口的文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq
但是該文檔只實現了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))
如果要實現簽名認證,如下
# -*- 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": "這個即將發布的新版本,創始人xx稱它為“紅樹林”。 而在此之前,每當面臨重大升級,產品經理們都會取一個應景的代號,這一次,為什么是“紅樹林”?", "title": "時代的火車向前開", "picUrl": "", "messageUrl": "https://www.dingtalk.com/s?__biz=MzA4NjMwMTA2Ng } }
效果圖如下
markdown類型 { "msgtype": "markdown", "markdown": { "title":"杭州天氣", "text": "#### 杭州天氣 @156xxxx8827\n" + "> 9度,西北風1級,空氣良89,相對溫度73%\n\n" + "> ![screenshot](https://gw.alicdn.com/tfs/TB1ut3xxbsrBKNjSZFpXXcXhFXa-846-786.png)\n" + "> ###### 10點20分發布 [天氣](http://www.thinkpage.cn/) \n" }, "at": { "atMobiles": [ "156xxxx8827", "189xxxx8325" ], "isAtAll": false } }
效果圖如下
整體跳轉ActionCard類型
{ "actionCard": { "title": "喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身", "text": "![screenshot](@lADOpwk3K80C0M0FoA) ### 喬布斯 20 年前想打造的蘋果咖啡廳 Apple Store 的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到 20 年前蘋果一個建立咖啡館的計劃", "hideAvatar": "0", "btnOrientation": "0", "singleTitle" : "閱讀全文", "singleURL" : "https://www.dingtalk.com/" }, "msgtype": "actionCard" }
效果圖如下
獨立跳轉ActionCard類型
{ "actionCard": { "title": "喬布斯 20 年前想打造一間蘋果咖啡廳,而它正是 Apple Store 的前身", "text": "![screenshot](@lADOpwk3K80C0M0FoA) ### 喬布斯 20 年前想打造的蘋果咖啡廳 Apple Store 的設計正從原來滿滿的科技感走向生活化,而其生活化的走向其實可以追溯到 20 年前蘋果一個建立咖啡館的計劃", "hideAvatar": "0", "btnOrientation": "0", "btns": [ { "title": "內容不錯", "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" }
效果圖如下
總結
以上所述是小編給大家介紹的Python實現釘釘訂閱消息功能,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復大家的。在此也非常感謝大家對億速云網站的支持!
如果你覺得本文對你有幫助,歡迎轉載,煩請注明出處,謝謝!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。