当试图在transloadit中检索程序集列表时,INVALID_SIGNATURE错误



我使用Transloadit API来合并音频文件和一系列图像。

在某些时候,我需要检索程序集列表(视频生成到现在),其中transloadit提供了一个get API端点,但该端点接受两个查询字符串,签名和参数(配置列表)

我正在生成相同参数的签名,该参数作为查询字符串连同签名一起发送到API,但它返回签名不匹配的错误。

Transloadit有关于如何为每种主要语言创建签名的适当文档https://transloadit.com/docs/#signature-authentication

文档(https://transloadit.com/docs/api/#assemblies-get)也没有说明签名是否会由相同的参数生成。

如果有人在使用transloadit之前遇到过同样的问题,现在解决了,请帮助

我相信您的问题可能是您在GET请求中传递JSON之前没有URL编码。以下是Python中的一小段代码,展示了如何将值字典转换为JSON以生成签名,然后转换为用于GET请求的URL编码对象。

params = {
'auth': {
'key': auth_key,
'expires': expires
},
'template_id': template_id
}
# Converts the dictionary into JSON
message = json.dumps(params, separators=(',', ':'))
signature = hmac.new(auth_secret.encode('utf-8'),
message.encode('utf-8'),
hashlib.sha1).hexdigest()
# URL encodes it
params_encoded = urllib.parse.quote_plus(message)
url = f'https://api2.transloadit.com/assemblies?signature={signature}&params={params_encoded}'
response = requests.get(url)

相关内容

最新更新