我试图在Zapier会话身份验证内的将来请求中使用会话密钥响应,但是从成功的身份验证返回的响应为“确定:hbsdakjdkaskjdfvbasdkjh”。我需要先提取hbsdakjdkaskjdfvbasdkjh,然后将其另存为以下zapier cli代码中的会话密钥变量
我对解析JSON有点陌生,但是我认为响应实际上是原始的……我尝试了一个Regex,但找不到正确的语句,想知道是否有人可以帮助我指出正确的方向。 / p>
会话URL参数等正在运行,并且“确定”之后的会话密钥响应正确:实际上是正确的,我可以手动使用其中的一部分。...
const options = {
url: 'https://theconsole.domain.com.au/api/auth.pl',
method: 'POST',
headers: {
'content-type': 'application/x-www-form-urlencoded',
'accept': 'application/json'
},
params: {
'AccountNo': bundle.authData.AccountNo,
'UserId': bundle.authData.UserId,
'Password': bundle.authData.Password
},
}
return z.request(options)
.then((response) => {
response.throwForStatus();
const results = z.JSON.parse(response.content);
// You can do any parsing you need for results here before returning them
return {
'sessionKey': results.sessionKey
};
});
答案 0 :(得分:0)
很酷,因此,如果您的响应不是json,则需要删除z.JSON.parse
行,因为这将引发错误。
关于将密钥从响应中拉出,成功将取决于知道响应将始终具有某种格式。在这种情况下,听起来像是OK: somekey
。
如果我们可以放心地假设只有一个空格()并且它正好在密钥之前,则可以尝试以下操作:
// the rest of the code
respone.throwForStatus(); // important, assuming the server gives a non-2xx code for a bad auth
const sessionKey = response.content.split(' ')[1];
return {sessionKey}; // shorthand for {sessionKey: sessionKey}
假设这些假设成立,那应该行得通!