一、在某一個釘釘群里面創建機器人獲取 Webhook、secret

二、實現代碼(分兩塊)
#coding=utf-8 import time import hmac import hashlib import base64 import json import urllib.parse import urllib.request class DingDingWebHook(object): def __init__(self, secret=None, url=None): if secret is not None: secret = secret if url is not None: url = url timestamp = round(time.time() * 1000) # 時間戳 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_plus(base64.b64encode(hmac_code)) # 最終簽名 self.webhook_url = url + '×tamp={}&sign={}'.format(timestamp, sign) # 最終url,url+時間戳+簽名 def send_meassage(self, data): header = { "Content-Type": "application/json", "Charset": "UTF-8" } send_data = json.dumps(data) # 將字典類型數據轉化為json格式 send_data = send_data.encode("utf-8") # 編碼為UTF-8格式 request = urllib.request.Request(url=self.webhook_url, data=send_data, headers=header) # 發送請求 opener = urllib.request.urlopen(request) # 將請求發回的數據構建成為文件格式
# -*- coding: utf-8 -*- from datetime import datetime from at_dingtalk import DingDingWebHook if __name__ == '__main__': my_secret = 'SEC4479571c5c0c9d4363b2f4***' my_url = 'https://oapi.dingtalk.com/robot/***' my_data = { 'msgtype':"text", "text":{ 'content':'test' }, "at":{
# 指定人的電話號碼,可以寫多個電話號碼
"atMobiles":[18988265530],
# 不at所有人 "isAtAll":False } } dingding = DingDingWebHook(secret=my_secret, url=my_url) dingding.send_meassage(my_data)