Javascript 是否有方法将前一步中的GET返回的数组传递给Zapier中的代码操作步骤?

Javascript 是否有方法将前一步中的GET返回的数组传递给Zapier中的代码操作步骤?,javascript,arrays,zapier,Javascript,Arrays,Zapier,使用Zapier用户界面设置zap 根据要求更新有关zap流程的信息: 是当用户在源应用程序中执行特定操作时触发的catch hook触发器 是对获取用户订阅的应用程序的GET API调用。对于每个用户,将返回一个订阅数组 是我的问题步骤-我想搜索数组以检查是否有任何订阅匹配特定的目标字符串 有条件的进展。检查步骤3的结果。如果数组中存在匹配项,则不再执行任何操作,它们已订阅。如果没有,则继续 发送帖子以向用户订阅目标订阅 我有一个GET,它返回一个对象数组,然后我想找出是否有任何对象的ID

使用Zapier用户界面设置zap


根据要求更新有关zap流程的信息:

  • 是当用户在源应用程序中执行特定操作时触发的catch hook触发器
  • 是对获取用户订阅的应用程序的GET API调用。对于每个用户,将返回一个订阅数组
  • 是我的问题步骤-我想搜索数组以检查是否有任何订阅匹配特定的目标字符串
  • 有条件的进展。检查步骤3的结果。如果数组中存在匹配项,则不再执行任何操作,它们已订阅。如果没有,则继续
  • 发送帖子以向用户订阅目标订阅

  • 我有一个GET,它返回一个对象数组,然后我想找出是否有任何对象的ID与我的目标类别ID字符串匹配。如果选择inputData.categoryId,则无法获取整个数组。如果类别ID不在数组中,我需要采取措施。是否有一种方法可以将GET的整个有效负载传递到下一个代码操作步骤

    我尝试传入inputData.cateogryId,但它对数组中的每个对象多次运行代码步骤

    我希望能够这样做,其中inputData是GET的有效负载

    const userRecords = JSON.parse(inputData);
    output = {isNotSubscribed: false};
    isNotSubscribed = userRecords.find(o => o.categoryId === 'string 1');
    
    输入数据位于一个数组中,看起来像

    [
      {
        "id": "string",
        "identifier": "string",
        "name": "string",
        "description": "string",
        "categoryId": "string",
        "contentId": "string",
        "signedDate": "2019-08-30T21:44:30.497Z",
      },
      {
        "id": "string",
        "identifier": "string",
        "name": "string",
        "description": "string",
        "categoryId": "string",
        "contentId": "string",
        "signedDate": "2019-08-30T21:44:30.497Z",
      },
      {
        "id": "string",
        "identifier": "string",
        "name": "string",
        "description": "string",
        "categoryId": "string",
        "contentId": "string",
        "signedDate": "2019-08-30T21:44:30.497Z",
      }
    ]
    

    <>而不是使用ZAPIUI UI来获取“获取”,你应该考虑使用Python代码来完成它。Postman可以轻松地将您的请求从应用程序转换为Python代码

    如果这样做,python“GET”的输出将是一个dic数组。应该是这样的:

    url ="yoururl"
    params= {"key":"value"}
    payload = {"key":"value"}
    headers = {"key":"value"}
    response = requests.request("GET", url, data=payload, headers=headers)
    

    大卫,来自Zapier平台团队

    与Zapier在步骤之间序列化数据的方式不同,我将删除上面的步骤2,并将其折叠到JS代码步骤中。这样,整个代码将是:

    //通常情况下,您需要将其包装到一个'async'函数中,但Zapier会为您做这件事
    const res=等待取数('https://somesite.com/data');
    const userRecords=await res.json();
    返回{isNotSubscribed:userRecords.find(o=>o.categoryId==='string1');
    
    您能用zap中每个步骤的图片/描述更新您的问题吗?哪个触发器,哪个动作,你想改变哪个动作,等等。谢谢你的回答。GET只是触发webhook时发生的一系列自动操作的一部分,因此需要自动运行webhook。感谢您的帮助。我之所以使用GET,是因为它有我需要传递的内置头,所以我也必须以编程方式发送我的令牌。明白了!也许有一种方法可以在各个步骤之间传递数据,但我想弄清楚如何准确地管理这些数据将是非常麻烦的。