傳送 HTTP 要求

傳送 HTTP 要求」動作可將您的工作流程連結至網路伺服器或 URL,並傳送 HTTP 要求。

Flow 傳送 HTTP 要求後,最多會等待 30 秒以取得 HTTP response code。若 30 秒後仍未收到回應,Flow 會關閉與您的 app 的連線,稍後再重試該要求。

欄位

傳送 HTTP 要求」動作包含下列欄位。

「傳送 HTTP 要求」動作中使用的欄位。
欄位說明
HTTP 方法要傳送的 HTTP 要求方法。 傳送 HTTP 要求 動作支援下列方法:
  • Get - 向伺服器請求資訊。
  • Delete - 從伺服器移除資源。
  • Head - 取得伺服器的 HTTP 回應標頭。
  • Options - 取得伺服器支援的選項與功能。
  • Patch - 在伺服器上部分更新資源。
  • Put - 在伺服器上更新資源。
  • Post - 在伺服器上建立或取代資源。
URL要傳送 HTTP 要求的伺服器 URL。
標頭HTTP 要求的鍵值對。可輸入多組鍵值對。
本文要傳送至伺服器的內容。
發生用戶端錯誤 (4XX 回應) 時收到 回應代碼 表示用戶端錯誤時,Flow 將:
  • 重試 - 最多重試 24 小時,直到收到不同的回應代碼或逾時。
  • 失敗 - 使工作流程執行失敗。
  • 忽略 - 忽略錯誤並繼續執行工作流程。
發生伺服器錯誤 (5XX 或 429 回應) 時收到 回應代碼 表示伺服器錯誤時,Flow 將:
  • 重試 - 最多重試 24 小時,直到收到不同的回應代碼或逾時。
  • 失敗 - 使工作流程執行失敗。
  • 忽略 - 忽略錯誤並繼續執行工作流程。

傳回的資料

若要在此動作後的步驟中存取傳回的資料,請使用名為 sendHttpRequest 的變數。此變數包含 HTTP 回應的所有詳情。您也可以使用 Run code 動作剖析回應的 body,以供後續工作流程步驟使用,如下方 example 所示。

若在單一工作流程中多次使用 傳送 HTTP 要求 動作,變數名稱中會加上數字。舉例來說,如果在工作流程中使用 傳送 HTTP 要求 動作兩次,第一個用於傳回資料的變數為 sendHttpRequest,第二個變數為 sendHttpRequest1。此名稱無法自訂。

回應代碼

下表說明 Flow 在收到回應後如何處理 HTTP response code

Flow 如何處理 HTTP 回應代碼。
HTTP 回應代碼Flow 如何處理該回應代碼
2XX 或 3XX 成功Flow 會將此 HTTP 要求標記為成功,並執行後續的工作流程動作。
4XX 錯誤,
5XX 與 429 錯誤
視動作設定而定,Flow 將:
  • 重試 - 最多重試 24 小時,直到收到不同的回應代碼或逾時。
  • 失敗 - 使工作流程執行失敗。
  • 忽略 - 忽略錯誤並繼續執行工作流程。
其他回應代碼若回應傳回的代碼不在此表範圍內,或在重試動作時逾時,Flow 會將該 HTTP 要求標記為失敗,使工作流程執行失敗,且不會執行後續的工作流程動作。

機密

密鑰可用於安全儲存在 傳送 HTTP 要求 動作中使用的敏感資訊,例如存取憑證或密碼。密鑰可從 Flow > 設定 頁面建立並管理。密鑰包含控制代碼、值和說明。在設定網址、標頭值或內文欄位時,您可以將密鑰作為 Liquid 變數 (例如 {{secrets.handle}}) 來參照,或從 新增密鑰 選項來參照。密鑰值永遠不會顯示在 Flow 介面中,且會從工作流程執行記錄中隱去。

觸發條件

傳送 HTTP 要求」動作可用於任何工作流程。

範例

範例 1:傳送 HTTP 要求至外部服務

此範例示範如何使用 Flow 將 HTTP 要求傳送至外部服務。

開始前,請先設定可接收 HTTP 要求並儲存其資料以供測試的網路服務,例如 Request Catcher。將敏感資料(例如密碼或 API 金鑰)傳送至第三方服務時,請務必謹慎。

步驟:

  1. 選擇 商品狀態已更新 觸發條件,這讓您可以透過變更商品狀態來測試此工作流程。
  2. 新增一個 傳送 HTTP 請求 動作至您的工作流程,並將其連結到觸發條件。接著按一下 傳送 HTTP 請求 步驟。
    • HTTP 方法 欄位輸入 POST
    • 網址 欄位輸入用來測試的網址,例如 https://yourFlowTest.requestcatcher.com/test
    • 標頭 區段,以 設為 Content-Type 設為 text/plain
    • 本文 區段,輸入 {{product.title}}{{product.status}},以從觸發條件傳送商品的標題與更新後的狀態。
  3. 啟用工作流程。
  4. 將某個商品的狀態變更以進行測試,例如從 草稿 改為 啟用
  5. 在外部測試服務中查看結果,例如本例中的 https://yourFlowTest.requestcatcher.com/

範例 2:使用「執行程式碼」解析 HTTP 回應

在此範例中,使用 Flow 將 HTTP 請求傳送至外部服務,並用 Run code 動作解析 HTTP 回應的 body,以供後續的工作流程步驟使用。

開始之前,請選擇可接收 HTTP 請求並回傳資料的網路服務,例如 Postman Echo。傳送敏感資料 (例如密碼或 API 金鑰) 至第三方服務時請務必謹慎。

步驟:

  1. 選擇 商品狀態已更新 觸發條件,這讓您可以透過變更商品狀態來測試此工作流程。

  2. 新增一個 傳送 HTTP 請求 動作至您的工作流程,並將其連結到觸發條件。接著按一下 傳送 HTTP 請求 步驟以開啟設定面板。

    • HTTP 方法 欄位輸入 POST

    • 網址 欄位輸入用來測試的網址,例如 https://postman-echo.com/post

    • 標頭 區段,以 設為 Content-Type 設為 application/json

    • 本文 區段輸入要回傳至工作流程的範例 JSON,例如:

      {
          "productTitle": "{{product.title}}",
          "productStatus": "{{product.status}}"
      }
  3. 新增一個 執行程式碼 動作至您的工作流程,並將其連結到 傳送 HTTP 請求 動作。接著按一下 執行程式碼 步驟以開啟設定面板。

    • 定義輸入 欄位納入 sendHTTPrequest 物件回傳的 body,例如:

      query{
        sendHttpRequest {
          body
        }
      }
    • 定義輸出 欄位中,依照輸出架構進行定義,例如:

      type Output {
        productTitle: String!
        productStatus: String!
      }
    • 撰寫程式碼 欄位中,使用 JSON.parse 方法解析回應,並確保您回傳的資料符合輸出架構中定義的結構與型別,例如:

      export default function main(input) {
        const body = JSON.parse(input.sendHttpRequest.body);
        console.log("body is", body);
        return {
          productTitle: body.data.productTitle,
          productStatus: body.data.productStatus
        }
      }
  4. 新增一個 記錄輸出 動作至您的工作流程,並將其連結到 執行程式碼 動作。接著按一下 執行程式碼 步驟以開啟設定面板。

    • 輸出 欄位中,納入 執行程式碼 步驟回傳的變數,例如:

      Title from HTTP response: {{runCode.productTitle}}
      Status from HTTP response: {{runCode.productStatus}}
  5. 啟用工作流程。

  6. 將某個商品的狀態變更以進行測試,例如從 草稿 改為 啟用

  7. Flow / Recent runs 頁面查看執行結果,並注意 記錄輸出 步驟中的數值與 傳送 HTTP 請求 輸出回傳的數值相符。

範本

通知您的出貨服務供應商即將產生的訂單

當訂單在 Order Tagger 中被加上「Warehouse」標籤時,向您的出貨服務供應商傳送 HTTP 請求。檢視範本

將新訂單傳送到 Airtable

建立訂單時,將訂單傳送到 Airtable。檢視範本

將所有現有與新商品傳送到 Airtable

每 10 分鐘尋找尚未傳送到 Airtable 的商品 (依標籤),並將其傳送到 Airtable。檢視範本

根據儲存在 Airtable 的商品資料,批次更新商品

根據儲存在 Airtable 的商品資料,批次更新商品。檢視範本

使用 SendGrid 通知顧客即將到期的禮品卡

每天取得所有將於 7 天後到期的禮品卡,並使用 SendGrid 向顧客寄送電子郵件。檢視範本

當顧客訂購自訂品項時,使用 SendGrid 寄送電子郵件

當顧客訂購自訂品項時,使用 SendGrid 寄送交易型電子郵件。檢視範本