本指南說明如何使用網路鉤子,讓代理程式更具動態性。Cloud Functions 簡單易用,因此可用於代管 Webhook,但您也可以透過許多其他方式代管 Webhook 服務。這個範例也使用 Go 程式設計語言,但您可以使用Cloud Functions 支援的任何語言。 您不需要編輯本指南的程式碼。
範例 Webhook 程式碼會執行下列作業:
- 從 Webhook 要求讀取參數值。
- 將參數值寫入 Webhook 回應。
- 在 Webhook 回應中提供文字回覆。
事前準備
如果您不打算使用 Webhook,可以略過本快速入門導覽課程。
閱讀本指南之前,請先完成下列工作:
- 詳閱流程基本概念。
- 執行設定步驟。
- 執行使用流程建構代理程式快速入門導覽課程中的步驟。以下步驟將繼續處理同一個代理程式。 如果該代理程式已不存在,您可以下載代理程式並還原。
建立 Cloud 函式
您可以使用 Google Cloud 控制台建立 Cloud Functions (參閱說明文件、開啟控制台)。如要為本指南建立函式,請按照下列步驟操作:
- 請務必將 Dialogflow CX 服務專員和函式放在同一個專案中。這是 Dialogflow CX 安全存取函式最簡單的方式。 如要選取專案,請前往專案選取器。
- 前往 Cloud Functions 總覽頁面。
- 按一下「建立函式」,然後設定下列欄位:
- 環境:第 1 代
- 函式名稱:shirts-agent-webhook
- 區域:如果您為代理程式指定區域,請使用相同區域。
- HTTP 觸發條件類型:HTTP
- 網址:按一下此處的複製按鈕,然後儲存值。 設定 Webhook 時會需要這個網址。
- 驗證:需要驗證
- 必須使用 HTTPS:已勾選
- 按一下 [儲存]。
- 按一下「下一步」 (您不需要特殊的執行階段、建構作業、連線或安全性設定)。
- 設定下列欄位:
- 執行階段:選取最新的 Go 執行階段。
- 原始碼:內嵌編輯器
- 進入點:HandleWebhookRequest
將程式碼替換為下列內容:
// Package cxwh contains an example Dialogflow CX webhook package cxwh import ( "encoding/json" "fmt" "log" "net/http" ) type fulfillmentInfo struct { Tag string `json:"tag"` } type sessionInfo struct { Session string `json:"session"` Parameters map[string]any `json:"parameters"` } type text struct { Text []string `json:"text"` } type responseMessage struct { Text text `json:"text"` } type fulfillmentResponse struct { Messages []responseMessage `json:"messages"` } // webhookRequest is used to unmarshal a WebhookRequest JSON object. Note that // not all members need to be defined--just those that you need to process. // As an alternative, you could use the types provided by the Dialogflow protocol buffers: // https://pkg.go.dev/google.golang.org/genproto/googleapis/cloud/dialogflow/cx/v3#WebhookRequest type webhookRequest struct { FulfillmentInfo fulfillmentInfo `json:"fulfillmentInfo"` SessionInfo sessionInfo `json:"sessionInfo"` } // webhookResponse is used to marshal a WebhookResponse JSON object. Note that // not all members need to be defined--just those that you need to process. //