def PostJson(url: str, data: dict, header: dict = {}): # 请求头 param = Util.ArrayMerge( { 'Content-Type': 'application/json; charset=utf-8', #JSON方式 }, header) # 数据 json = Util.JsonEncode(data) if len(data) > 0 else '{}' # 发送 res = requests.post(url, data=json, headers=param).text return Util.JsonDecode(res) if len(res) > 0 else None
def UserSig(userId: any, expire: int = 0): # 配置 cfg = Tencent.TRTC() if expire == 0: expire = cfg['ExpireTime'] # 参数 param = { 'TLS.ver': '2.0', 'TLS.identifier': str(userId), 'TLS.sdkappid': str(cfg['SDKAppID']), 'TLS.expire': str(expire), 'TLS.time': str(Util.Time()), } # 签名 param['TLS.sig'] = Signature.__hmacsha256(param, cfg['SecretKey']) # 压缩 data = Base64.Compress(Util.JsonEncode(param)) return Base64.UrlEncode(data)
def V3Header(data: dict = {}): # 数据 json = Util.JsonEncode(data) if len(data) > 0 else '{}' HashedRequestPayload = Hash.Sha256(json) # 请求串 CanonicalRequest = Signature.RequestMethod+"\n"\ + Signature.CanonicalURI+"\n"\ + Signature.CanonicalQueryString+"\n"\ + 'content-type:'+Signature.ContentType+"\n"+'host:'+Signature.Host+"\n"+"\n"\ + Signature.SignedHeaders+"\n"\ + HashedRequestPayload # 字符串 timeStamp = str(Util.Time()) date = datetime.utcfromtimestamp(float(timeStamp)).strftime("%Y-%m-%d") CredentialScope = date + '/' + Signature.Service + '/tc3_request' HashedCanonicalRequest = Hash.Sha256(CanonicalRequest) StringToSign = Signature.Algorithm+"\n"\ + timeStamp+"\n"\ + CredentialScope+"\n"\ + HashedCanonicalRequest # 计算签名 cfg = Tencent.CAPI() SecretDate = Hash.HmacSha256(date, str.encode("TC3" + cfg['SecretKey'])) SecretService = Hash.HmacSha256(Signature.Service, SecretDate) SecretSigning = Hash.HmacSha256('tc3_request', SecretService) Sign = Hash.HexEncode(Hash.HmacSha256(StringToSign, SecretSigning)) # Authorization Authorization = Signature.Algorithm+' '\ + 'Credential='+cfg['SecretId']+'/'+CredentialScope+', '\ + 'SignedHeaders='+Signature.SignedHeaders+', '\ + 'Signature='+Sign # 请求头 header = { 'Authorization': Authorization, 'Content-Type': Signature.ContentType, 'Host': Signature.Host, 'X-TC-Action': Signature.Action, 'X-TC-Version': Signature.Version, 'X-TC-Timestamp': timeStamp, 'X-TC-Region': Signature.Region, } return header
def Log(data): text = Util.JsonEncode({'type': 'log', 'data': data}) Logs.Writer(text)
def Error(data): text = Util.JsonEncode({'type': 'error', 'data': data}) Logs.Writer(text)
def Action(data): text = Util.JsonEncode({'type': 'action', 'data': data}) Logs.Writer(text)
def Info(data): text = Util.JsonEncode({'type': 'info', 'data': data}) Logs.Writer(text)