【问题标题】:Is it possible to get Zap ID in pooling trigger programmatically是否可以通过编程方式在池触发器中获取 Zap ID
【发布时间】:2020-04-21 09:04:47
【问题描述】:

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

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

我决定为此使用secret+ZapId,这似乎合乎逻辑,但据我所知,它无法访问。

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

问题:

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

【问题讨论】:

标签: zapier zapier-cli


【解决方案1】:

Zapier 开发者平台仅具有此用例的功能:z.cursor (docs)。

这个想法是您可以存储跨触发器运行持续存在的任意数据。 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;
};

【讨论】:

  • 谢谢。是的,这很接近,但据我了解Cursors are stored per-zap and last about an hour. 所以如果 zap 不会被触发超过一小时 - 我的数据将会消失。这对于处理分页很方便。但不确定它是否能满足我的需求。
  • 您是否在触发器中使用此功能?还值得注意的是,您无需担心向 Zapier 发送重复数据 - 它为您提供 deduplication
猜你喜欢
  • 1970-01-01
  • 2022-01-14
  • 2011-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 2011-10-16
相关资源
最近更新 更多