使用输入数据变量作为获取Zapier结果的键(自定义集成)

时间:2019-03-20 16:35:45

标签: javascript zapier

我在构建私有Zapier集成时遇到问题,因为Zapier只能将数组用作输出,而不能使用对象。我需要调用的数组被嵌套在我的API结果中的2个级别中,并且它需要调用的键是所调用任务的唯一变量(但我可以使其成为输入数据的一部分)。

因此,要获取正确的数组,javascript将需要类似于"return results.custom_field_values[bundle.inputData.id]",但我找不到一种方法来使输入数据变量在类似结果中被接受。

这可能吗?我在支持文档中找不到解决方案。

这是我打的电话:

const options = {
  url: `https://api.mavenlink.com/api/v1/custom_field_values.json?subject_type=story&with_subject_id=${bundle.inputData.subject_id}& custom_field_name=Active Assignee`,
  method: 'GET',
  headers: {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${bundle.authData.access_token}`,
    'Accept': 'application/json'
  },
  params: {
    'subject_id': bundle.inputData.with_subject_id,
    'display_value': 'Active Assignee'
  }
}

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 results.custom_field_values[bundle.inputData.id];
  });

当我只调用result.custom_field_values时,这就是我的结果:

{
  "233451615": {
    "can_edit": true,
    "subject_type": "story",
    "account_id": 4150797,
    "subject_id": 385046515,
    "updated_at": "2019-03-18T13:54:28-07:00",
    "value": [
      638945
    ],
    "display_value": "Irma Davila",
    "setter_id": "10976265",
    "custom_field_id": "181017",
    "created_at": "2019-03-05T07:00:15-08:00",
    "custom_field_name": "Active Assignee",
    "type": "single",
    "id": "233451615"
  }
}

我想做的是仅调用对象内的数组,在这种情况下,该数组为“ 233451615”(与ID相同)。但是,即使每次对象都不相同,也可以通过输入将其作为变量提供。

由于任何人愿意帮助!

2 个答案:

答案 0 :(得分:0)

您尝试使用方括号表示法而不是点表示法吗?

类似这样的东西:

results.custom_field_values[{bundle.inputData.id}]

还要确保bundle.inputData.id是正确的值。

答案 1 :(得分:0)

您需要使用[]符号Ref

更改此

"return results.custom_field_values.{bundle.inputData.id}"

对此

"return results.custom_field_values[bundle.inputData.id]"