我正在使用Transloadit API来合并音频文件和一系列图像。
在某些情况下,我需要检索程序集列表(到目前为止生成的视频),transloadit为其提供了一个get API端点,但该端点接受两个查询字符串:签名和参数(用于配置列表)
我正在生成相同参数的签名,该签名将作为查询字符串与其签名一起发送到API,但它返回签名不匹配的错误。
Transloadit有关于如何为每种主要语言创建签名的适当文档,这里是https://transloadit.com/docs/#signature-authentication
文档(https://transloadit.com/docs/api/#assemblies-get)也没有声明签名是否会以相同的参数生成。
如果有人使用过transloadit,并且以前遇到过同样的问题,现在解决了,请给予帮助
发布于 2021-03-17 09:42:35
我认为您的问题可能是在GET请求中传递JSON之前没有对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}¶ms={params_encoded}'
response = requests.get(url)
https://stackoverflow.com/questions/66299350
复制相似问题