修改返回的响应
Modify Returned Response
我正在尝试获取会话密钥响应,以便在 Zapier 会话身份验证中用于我未来的请求,但是成功身份验证返回的响应是 "OK: hbsdakjdkaskjdfvbasdkjh"。我需要提取 hbsdakjdkaskjdfvbasdkjh,然后在下面的 zapier cli 代码中保存为会话密钥变量
我对解析有点陌生 JSON,但我认为响应实际上是原始的...我尝试了 Regex 但无法找出正确的语句,想知道是否有人可以帮助我指出方向正确。
会话 URL 参数等正在工作,在 OK: 之后响应的会话密钥实际上是正确的,我可以手动将其用于会话的其余部分....
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
};
});
很酷,所以如果您的响应不是 json,您需要删除 z.JSON.parse
行,因为那会引发错误。
至于从响应中提取密钥,成功取决于知道响应始终具有特定格式。在这种情况下,听起来像是 OK: somekey
。
如果我们可以安全地假设永远只有一个 space (</code>) 并且它就在密钥之前,您可以尝试类似的方法:</p>
<pre><code>// 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}
假设这些假设成立,那应该可行!
我正在尝试获取会话密钥响应,以便在 Zapier 会话身份验证中用于我未来的请求,但是成功身份验证返回的响应是 "OK: hbsdakjdkaskjdfvbasdkjh"。我需要提取 hbsdakjdkaskjdfvbasdkjh,然后在下面的 zapier cli 代码中保存为会话密钥变量
我对解析有点陌生 JSON,但我认为响应实际上是原始的...我尝试了 Regex 但无法找出正确的语句,想知道是否有人可以帮助我指出方向正确。
会话 URL 参数等正在工作,在 OK: 之后响应的会话密钥实际上是正确的,我可以手动将其用于会话的其余部分....
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
};
});
很酷,所以如果您的响应不是 json,您需要删除 z.JSON.parse
行,因为那会引发错误。
至于从响应中提取密钥,成功取决于知道响应始终具有特定格式。在这种情况下,听起来像是 OK: somekey
。
如果我们可以安全地假设永远只有一个 space (</code>) 并且它就在密钥之前,您可以尝试类似的方法:</p>
<pre><code>// 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}
假设这些假设成立,那应该可行!