首页 > 解决方案 > 是否可以通过编程方式在池触发器中获取 Zap ID

问题描述

我正在尝试做的事情:我的端点返回客户端数据并提供返回上次调用更改的数据的能力。所以我需要存储时间戳和请求的哈希值之类的东西——所以下次我会提供它并只接收最新的数据。

出于这些目的,我将使用StoreClient一个内置实用程序。但据我了解,它将操作秘密值来访问我存储的数据。如果客户将使用我的应用程序创建几个 Zap,它们使用相同的秘密 - 他们的数据不会被分离,因此,我会遇到问题。

我决定使用secret+ZapId它,似乎合乎逻辑,但据我所知,它是不可访问的。

对于 REST 挂钩,可以在订阅挂钩中获取 Zap Id - 但这完全不同,不适合我的情况。

问题:

  1. 如何以编程方式获取 zap id?
  2. 在这种情况下使用 StoreClient 是否正确?

标签: zapierzapier-cli

解决方案


Zapier 开发人员平台仅具有此用例的功能:( z.cursordocs )

这个想法是您可以存储在触发器运行中持续存在的任意数据。zapier 平台负责将数据范围限定到每个单独的 zap。

这是一个粗略的示例(从文档中复制):

const perform = async (z, bundle) => {
  let cursor = await z.cursor.get(); // string | null;

  const response = await z.request(
    'https://someEndpoint',
    {
      // if cursor is null, it's sent as an empty query
      //   param and should be ignored by the server
      params: { cursor: cursor }
    }
  );

  // we successfully got page 1, should store the cursor in case the user wants page 2
  await z.cursor.set(response.nextPage); // you would hash whatever data you want to store

  return response.items;
};

推荐阅读