【问题标题】:Modify Returned Response修改返回的响应
【发布时间】:2019-11-10 02:30:57
【问题描述】:

我正在尝试获取会话密钥响应,以在 Zapier 会话身份验证中的未来请求中使用,但是从成功身份验证返回的响应是“OK:hbsdakjdkaskjdfvbasdkjh”。我需要提取 hbsdakjdkaskjdfvbasdkjh 然后在下面的 zapier cli 代码中保存为会话密钥变量

我对解析 JSON 有点陌生,但我认为响应实际上是原始的......我尝试了一个正则表达式,但无法找出正确的语句,并想知道是否有人可以帮助我指出正确的方向。

会话 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
    };
  });

【问题讨论】:

    标签: arrays json session-variables zapier-cli


    【解决方案1】:

    很酷,所以如果您的响应不是 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}
    

    假设这些假设成立,那应该可行!

    【讨论】:

      猜你喜欢
      • 2018-04-18
      • 1970-01-01
      • 1970-01-01
      • 2014-10-07
      • 2021-05-19
      • 2016-02-11
      • 2017-01-15
      • 2019-06-20
      • 1970-01-01
      相关资源
      最近更新 更多