【发布时间】:2017-12-30 06:11:42
【问题描述】:
我在尝试通过 node.js 客户端使用 Segments API 时遇到授权问题。 停止绕圈子,在它管理 POST 请求和通过 x-wsse 标头授权的部分下方:
var now = new Date();
var options = {
method: "POST",
hostname: "api3.omniture.com",
path: "/admin/1.4/rest/?method=Segments.Get",
json: true,
headers: {
"Content-Type": "application/json",
"Content-Length" : Buffer.byteLength(JSON.stringify(body)),
"x-wsse": 'UsernameToken Username="[username]:[company]", PasswordDigest="xxxxxxxxxxxxxxxxxxxxxxxxxx==", Nonce="yyyyyyyyyyyyyyyyyyyyyyyyyy", Created="'+now+'"'
}
};
如您所见,我正在尝试复制 API Explorer 生成的 x-wsse,通过 Date() JS 类动态指定 Created 时间戳。
节点客户端向我报告此错误:
{"error":"Bad Request","error_description":"Unable to validate authentication.","error_uri":null}
我想 x-wsse PasswordDigest 和 Nonce 值也会在每次请求时不断变化,而在这里我将它们设为静态。 如果这是问题的原因,如何在 x-wsse 标头中动态插入这些参数?
非常感谢。
【问题讨论】:
-
嗨,里卡多。您是否遇到过“创建的时间戳无效”错误?我正在尝试使用 Adobe Analytics API,并且使用的参数与 Adobe API 资源管理器输出的参数完全相同,但我仍然遇到该错误。
-
@knoll 请务必以 UTC 时间提交您的请求
标签: javascript node.js analytics adobe-analytics segments