创建您的第一个 Webhook

本指南将引导您从一个空白的应用程序开始,逐步构建一个Shopify Flow工作流程,该工作流程会在您的系统发出指令时运行。大约需要十分钟。

1. 创建一个 Webhook

Webhook -> 创建 Webhook。该页面首先询问将由什么触发此 Webhook,并据此进行配置:

您的答案 您将获得
自动化工具(n8n、Make、Zapier、自定义代码) 一个生成的令牌,可直接粘贴到工具中
一项对 Webhook 进行签名的服务(Stripe、GitHub 等) 您所选服务的签名验证 - - 请参阅 验证已签名的 Webhook
浏览器或店面脚本 已启用 CORS - - 请参阅 CORS、应用代理 URL 和浏览器调用
无 - 按计划运行 一个按定时器间隔从指定 URL 获取数据的 Webhook;接下来将打开其“计划”选项卡 - - 参见 定时URL轮询
其他,或稍后再决定 您可自行选择身份验证方式

给它起一个你以后能认出来的名字(例如“钱包卡提醒”、“联系表单”),然后保存。所有设置之后都可以修改。

现在,您已获得一个以短代码结尾的 Webhook URL,例如 https://.../webhook/ab12cd34。该 URL 即是您的系统发送 POST 请求的端点。

“创建 Webhook”页面会询问“什么会触发此 Webhook”,此时请选择“无 -  - 按计划运行”,并注意接下来会打开“计划”选项卡
创建 Webhook 首先要确定由什么来调用它。根据答案设置相应的身份验证;选择“无 - - 按计划运行”将打开“计划”选项卡。
Webhook 编辑器:左侧为名称和身份验证,右侧为包含状态、Webhook URL 和 Webhook ID 的“端点”卡片,上方依次为“实时预览”、“测试”和“使用情况”
Webhook 编辑器。左侧为设置;右侧的“端点”卡片中包含要提供给发件人的 Webhook URL 以及您在 Shopify Flow 中使用的 Webhook ID。

2. 选择呼叫者证明身份的方式

打开 Webhook 并选择一种身份验证方法。完整对比请参见 身份验证 - - 简而言之:

  • 静态令牌 - - 几乎适合所有人。点击“生成”按钮,复制令牌, 将其包含在X-Api-Key标头中。
  • HMAC SHA-256 - - 适用于对请求进行签名的发送方(如 Stripe、GitHub 及类似服务)。
  • 无 - - 仅供测试。任何拥有该 URL 的人都可以触发您的工作流程。

3. 请告诉我们您关注哪些领域

在**“高级设置**”下,可从您的 JSON 负载中映射最多四个字段。如果您的系统发送:

“高级设置”选项卡中,字段 1 至字段 4 分别映射到 orderId、status、total 和 note
高级设置:最多可从请求正文中映射四个值。这些值会作为 fieldOne 至 fieldFour 传入 Shopify Flow。
json
{ "customer": { "email": "someone@example.com" }, "orderId": "1001" }

将 fieldOne 映射到 orderId,将 fieldTwo 映射到 customer.email - - 嵌套路径使用点分隔。详细信息请参见 负载映射和流变量。

4. 发送测试请求

“History”中打开了一个调用,其中包含其请求头、负载、状态、持续时间和标识符
测试请求发出后,该调用会连同收到的负载一起显示在“历史记录”中。
bash
curl -X POST https://your-app-url/webhook/ab12cd34 \
  -H "Content-Type: application/json" \
  -H "X-Api-Key: your-token" \
  -d '{"orderId":"1001","customer":{"email":"someone@example.com"}}'

打开**“历史记录**”。您应该能看到该请求及其状态、头部和负载。如果未显示,请访问 历史与故障排除,该页面列出了所有拒绝原因。

5. 构建 Shopify Flow 工作流程

在 Shopify Flow 中,创建一个以**“Webhook 触发器**”为起点的工作流程。

  1. 添加触发器,然后单击**“记录事件**”。
  2. 回到这里,在**“历史记录**”中打开该调用,然后点击**“重放”**。Shopify Flow 现在有一个 可供操作的真实示例负载 - - 这比猜测字段名要容易得多。
  3. 添加条件:Webhook ID 等于您的 Webhook ID(显示在 Webhook 页面上)。 每个 Webhook 触发器工作流程都会接收来自您_所有_ Webhook 的事件,因此这 正是该条件使得工作流程仅对此项做出响应。
  4. 请将您的操作添加到 {{fieldOne}} 至 {{fieldFour}}。
  5. 启用该工作流程。
Shopify Flow
在Shopify Flow中选择“Select a trigger”(选择触发器),打开Workflow Webhooks(创建新触发器),然后选择“Webhook Trigger”(Webhook 触发器)。
“Webhook 触发器”步骤下方的加号展开后,显示了“操作”和“条件”选项
步骤下方的“+”号提供了工作流程的两大组成部分:条件和操作。
一个 Shopify Flow 条件:Webhook ID 等于某个 Webhook 的 ID
每个工作流程的第一步:对 Webhook ID 设置一个条件,以确保工作流程仅针对此 Webhook 运行。
Shopify Flow 中“Webhook 触发器”的“添加变量”面板,其中列出了 webhookId 以及 fieldOne 至 fieldFour,并附有来自最近一次请求的示例值
触发器向您的工作流程传递的内容:Webhook ID 以及您映射的四个字段,以下是最近一次请求中这些字段的值。
Shopify Flow 的“发送内部邮件”操作,其中“fieldOne”和“fieldTwo”作为邮件主题,“fieldThree”和“fieldFour”作为邮件正文
在任何需要 Shopify Flow 操作使用变量的位置,都可以使用这些映射字段,例如在此处,即内部电子邮件的主题和正文中。
完成的工作流程:Webhook 触发器,基于 Webhook ID 的条件,然后在“True”分支上发送内部邮件
完成的工作流程:触发器,基于 Webhook ID 的条件,然后在“True”分支上执行您的操作。

6. 上线

将您的实际系统指向该 Webhook URL。在**“历史记录**”中查看前几次调用,以确认它们已成功到达并执行成功。

如果发件人在超时后重试,请启用重复配送防护,以防止重试导致工作流程被执行两次。

“Webhook”页面列出了六个 Webhook,每个 Webhook 都显示了其调用次数、身份验证信息以及“已启用”或“已禁用”的标识
“Webhook”页面。每行显示该 Webhook 被调用的次数、调用者的身份验证方式以及是否已启用;右侧菜单可用于启用、禁用或删除该 Webhook。