一、在某一个钉钉群里面创建机器人获取 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)