根据文档提供的方法生成签名后,请求 API 一直返回 4100-验证失败。
有没有用过的大佬帮忙看看哪里出了问题?
参考的文档是这个: https://cloud.tencent.com/document/api/271/2053
谢谢
import requests
import os
import time
import random
import urllib.parse
import hashlib
import hmac
import base64
# HmacSHA256 加密算法
def Hmac_SHA256(string, key):
string_b = bytes(string, encoding="utf-8")
key_b = bytes(key, encoding="utf-8")
signature = base64.b64encode(hmac.new(key=key_b, msg=string_b, digestmod=hashlib.sha256).digest())
return signature.decode("utf-8")
# 请求 API
def req_api():
# 生成通用参数
nonce = str(random.randint(1, 65535))
timestamp = str(int(time.time()))
region = "sz"
action = "TextSentiment"
# 密钥
TX_SecretKey = os.getenv("TX_SecretKey")
TX_SecretId = os.getenv("TX_SecretId")
# 请求方式
method = "GET"
# 组合字符串
url = "wenzhi.api.qcloud.com/v2/index.php"
params = {
"Action": action,
"Nonce": nonce,
"Region": region,
"SecretId": TX_SecretId,
"SignatureMethod": "HmacSHA256",
"Timestamp": timestamp,
}
params_string = urllib.parse.urlencode(params)
src_string = "{}{}?{}".format(method, url, params_string)
print(src_string)
# 使用 hamxsha256+base64 生成签名
sign_string = Hmac_SHA256(src_string, TX_SecretKey)
print("Signature is {}".format(sign_string))
url = "https://wenzhi.api.qcloud.com/v2/index.php"
params = {
"Action": action,
"Nonce": nonce,
"Region": region,
"SecretId": TX_SecretId,
"Timestamp": timestamp,
"Signature": sign_string,
"content": "双万兆服务器就是好,只是内存小点",
}
response = requests.get(url, params=params, verify=False)
print(response.text)
if __name__ == '__main__':
req_api()
1
tencentcloud 2018-05-05 16:03:22 +08:00 via iPhone 1
楼主您好,收到您的反馈啦,如您方便,关于报错 4100-验证失败的问题,欢迎您登录官网控制台提交工单,会有专家为您高效解决。感谢您的反馈与支持。
|
2
Nick2VIPUser OP @tencentcloud 好的,谢谢🙏
|
3
GoLand 2018-05-05 16:43:10 +08:00 1
用文档里给的数据试了下。参数排序那步你就漏了。 |
4
zyxbcde 2018-05-05 17:54:19 +08:00 via Android 1
腾讯云有 sdk 啊,好像用起来挺简单的。
|
5
Nick2VIPUser OP @GoLand 谢谢!确实漏掉了,我再试一下!
|
6
Nick2VIPUser OP @zyxbcde 我去看下,谢谢哈
|
7
zjp 2018-05-05 22:29:33 +08:00 via Android 1
前几个星期刚写过
注意文档示例里对参数排序是不区分公共参数和接口参数的,但我发现翻译接口需要分开排序。如果还是始终签名不对,可以试试 |
8
StatLee 2018-05-07 13:10:08 +08:00
|