在 Copilot Studio 中,您可以使用 HTTP 要求 節點呼叫外部 REST API 來擴充代理程式的功能。 當您需要從外部系統擷取資料或操作該系統上的資料時,此呼叫會很實用。
必要條件
使用 HTTP 要求節點
選取您要呼叫外部 API 的節點下方的 [ 新增節點
] 圖示,指向 [進階],然後選取 [傳送 HTTP 要求]。在 URL 方塊中,輸入要呼叫的 API 端點的 URL。
從下拉式清單選取適當的要求方法。 支援 GET、POST、PATCH、PUT 和 DELETE 方法。
在節點的 [標頭和本文 ] 下,選取 [ 編輯 ] 按鈕,這會開啟 [HTTP 要求屬性 ] 面板。
您可以選擇將一個或多個標題新增至 HTTP 要求。 選擇新增按鈕以新增每個標頭的索引鍵和值。
您可以使用標頭區段來傳遞驗證令牌、內容類型,或您要呼叫之 API 的任何其他必要標頭。 例如,您可以新增標頭,例如
Authorization: Bearer <your_token>來驗證要求。預設情況下,HTTP 要求本文中不會傳送任何內容,但您可以在本文中指定內容。
在節點上,從可用的選項中選擇回覆資料類型。
您可以提供範例 JSON 回覆,您通常可以在要呼叫 API 的文件中找到該範例。 這會產生 Power Fx 變數,供您用於製作畫布中的其他位置,並在 Power Fx 編輯器中提供 IntelliSense 支援。 選擇從範例資料,然後選擇從範例 JSON 取得結構描述。 將範例回覆貼到編輯器中,然後選擇確認。
在將使用者回應儲存為下,選擇您希望儲存 HTTP 請求回應的位置,可以建立一個新變數或選擇一個現有變數。
在 HTTP 要求本文中傳送內容
在節點的 [標頭和本文 ] 下,選取 [ 編輯 ] 按鈕,這會開啟 [HTTP 要求屬性 ] 面板。
在本文底下,選取適當的內容類型。 預設情況下,本文會設為無內容,其中要求本文中不應存在任何內容,這最常用於 GET 要求。 若要將內容新增至本文,請選取其中一個可用的選項。
JSON 內容:JSON 內容可讓您在要求本文中提供 JSON 物件。 此物件通常在發出 POST 或 PUT 要求時使用。 選擇此選項後,編輯器可讓您輸入 JSON 內容。
您還能使用 Power Fx 指定 JSON 內容,讓您可以包含動態值和參考變數。 選取編輯 JSON 按鈕、選擇公式,然後輸入 Power Fx 物件 (任何已輸入的現有 JSON 都會為您轉換成 Power Fx 物件),此物件會在提出 HTTP 要求時轉換成 JSON。
原始內容:原始內容可讓您將資料的字串插入至要求本文中,此字串可以是任何您指定的內容類型。 使用 Power Fx 公式輸入原始內容,例如下列範例中顯示的字串內容。
錯誤處理和逾時
HTTP 要求節點有多個選項來處理 HTTP 要求可能會失敗或傳回錯誤的情況。
預設情況下,該功能會引發錯誤。 這表示當 HTTP 請求傳回錯誤或執行失敗時,代理程式將停止其操作並觸發 On Error 系統主題,顯示錯誤訊息。
但是,您可以設定錯誤處理以不觸發 On Error 系統主題。 相反地,您可以將 HTTP 狀態代碼和錯誤回應的任何內容儲存到您指定的變數中。 您可以根據需要查詢這些變數,且主題可以繼續執行。 即使特定 HTTP 請求失敗,如果您希望代理程式繼續執行,此設定也很有用。
若要設定 HTTP 要求 節點的錯誤處理行為:
在 [標頭和本文] 底下,選取 [編輯]。 HTTP 要求屬性面板隨即出現。
在 [錯誤處理] 底下,選取所需的行為: 引發錯誤,或 發生錯誤時繼續。
如果您選擇發生錯誤時繼續,請設定狀態代碼及錯誤回應的變數。
在此範例中,如果 HTTP 要求失敗,代理程式會將 HTTP 狀態代碼儲存在變數中 Topic.StatusCode ,以及變數中的 Topic.ErrorResponse 響應主體。 代理程式繼續執行該主題的下一步。
錯誤回覆變數類型為任意。 您可以使用 剖析值 節點,將此變數轉換成 Power Fx 記錄。
在 [HTTP 要求屬性 ] 面板中,您也可以以毫秒為單位設定 要求逾時 屬性。 預設值為 30 秒。