签名算法为HmacSHA256,签名数据是当前时间戳timestamp,密钥是appId对应的appSecret计算出来的签名值,算出来的digest再经过base64加密后即是所需要的签名数据。官方文档中只给了Java和PHP的示例demo,因此,根据Java和PHP的demo写一个python版的。
1 import hmac 2 from base64 import standard_b64encode 3 4 5 def get_ding_talk_signature(app_secret, utc_timestamp): 6 """ 7 :param app_secret: 钉钉开发者文档创建的app密钥 8 :param utc_timestamp: 官方文档中要签名的数据,单位是毫秒时间戳 9 :return: 为所需要的签名值,此值为可逆的 10 """ 11 digest = hmac.HMAC(key=app_secret.encode(‘utf8‘), msg=utc_timestamp.encode(‘utf8‘), digestmod=hmac._hashlib.sha256).digest() 14 signature = standard_b64encode(digest).decode(‘utf8‘) 15 return signature
以下是钉钉官方的签名计算文档链接
https://ding-doc.dingtalk.com/doc#/faquestions/hxs5v9
原文地址:https://www.cnblogs.com/zepc007/p/12154253.html
时间: 2024-10-11 20:04:43