import requests
import time
import hashlib
import hmac
import base64
import re
def SendMessage(message = ''):
# secret:密鑰,機器人安全設置頁面,加簽一欄下面顯示的SEC開頭的字符串,例如:SECxxxxxxxx
secret = 'SECxxxxxxxx'
# access_token:創建完釘釘機器人之后會自動生成,例如:access_tokenxxxx
access_token = 'access_tokenxxxx'
# timestamp:當前時間戳,單位是毫秒,與請求調用時間誤差不能超過1小時
timestamp = int(round(time.time() * 1000))
# 加密,獲取sign和timestamp
data = (str(timestamp) + '\n' + secret).encode('utf-8')
secret = secret.encode('utf-8')
signature = base64.b64encode(hmac.new(secret, data, digestmod=hashlib.sha256).digest())
reg = re.compile(r"'(.*)'")
signature = str(re.findall(reg,str(signature))[0])
# 發送信息
url = 'https://oapi.dingtalk.com/robot/send?access_token=%s&sign=%s×tamp=%s' % (access_token,signature,timestamp)
headers = {"Content-Type": "application/json ;charset=utf-8 "}
try:
response = requests.post(url, headers = headers, json = message, timeout = (3,60))
print(response)
response_msg = str(response.status_code) + ' ' + str(response.content)
print(response_msg)
except Exception as error_msg:
print('error_msg==='+str(error_msg))
response_msg = error_msg
return response_msg
if __name__ == "__main__":
msg = {"msgtype":"text","text":{"content":"測試"},"at":{"isAtAll":False}}
SendMessage(msg)
釘釘官方文檔:https://ding-doc.dingtalk.com/doc#/serverapi2/qf2nxq