发送 HTTP 请求
已于 Jul 22, 2023 打印了此页面。若要查看当前版本,请访问 https://help.shopify.com/zh-CN/manual/shopify-flow/reference/actions/send-http-request。
发送 HTTP 请求操作可将工作流连接到 Web 服务器或 URL,并发送 HTTP 请求。
Flow 发送 HTTP 请求后,最多等待 30 秒,等待HTTP 响应代码。如果 Flow 在 30 秒后没有收到回复,它将关闭与应用的连接,并重新发送请求。
字段
发送HTTP 请求操作包含以下字段。
字段 | 描述 |
---|---|
HTTP 方法 | 要发送的 HTTP 请求的方法。发送HTTP 请求操作支持以下方法:
|
URL | 发送 HTTP 请求的服务器的 URL。 |
标头 | HTTP 请求的键和值对。可以输入多个键值对。 |
正文 | 要发送到服务器的内容。 |
触发器
发送 HTTP 请求操作可用于任何工作流。
示例
调用 Shopify GraphQL Admin API
在此示例中,您将通过调用productUpdateAPI 来使用 Flow 编辑产品标题。
在开始之前,请执行以下操作:
- 设置并安装自定义应用(具有
write_products
范围)。您将在此示例中使用API 密钥调用 API。
然后,在 Flow 中按照以下步骤操作:
- 选择产品状态已更新触发器,用于通过更改产品状态来测试此工作流。
- 向工作流中添加发送 HTTP 请求并将其连接到触发器。
- 点击发送 HTTP 请求步骤来打开配置面板。
- 在HTTP 方法字段中,输入
POST
。 - 在URL字段中,输入
https://admin.shopify.com/store/shopname/api/2023-01/graphql.json
来替代您的商店域名和所需的 API 版本。 - 在标头部分,输入在第一步获得的键
X-Shopify-Access-Token
和值YOUR_API_SECRET_KEY
。 - 在标头部分,再输入一个键为
Content-Type
和值为application/json
的标头。 - 在正文部分,输入以下内容:
json {"query": "mutation { productUpdate(input: {id: \"{{ product.id }}\", title: \"{{product.title}}-edited\"}) { product { id } } }"}
- 此代码会将
-edited
添加到标题末尾 - 空格和新行对 Liquid 编辑器有意义,因此请避免添加或删除空格。此外,除了输出 Liquid 外,请避免折叠括号,如
{{
和}}
,因为它们是为 Liquid 变量预留的。
- 配置工作流的其余部分并将其激活。
- 通过将产品状态在草稿和活跃之间切换来测试工作流。
调用外部 API
在此示例工作流中,当订单付款时,一个 POST HTTP 请求将发送到服务器。
响应代码
下表介绍了 Flow 在收到响应后如何处理HTTP 响应代码。
HTTP 回复代码 | Flow 处理响应代码的流程 |
---|---|
2XX 或 3XX 成功 | Flow 将 HTTP 请求标记为成功,并随后在工作流中执行操作。 |
429 或 5XX 错误 | Flow 会在最多 24 小时内自动重试此操作,直到它收到其他响应代码或时间过长。 |
其他回复代码 | 如果您的应用返回此表未描述的代码,或在重试操作时出现时间,Flow 会将 HTTP 请求标记为失败。不会执行后续的工作流操作。 |