自訂事件是指您定義的事件。用於處理與使用者對話以外發生的事件。例如:使用者按下按鈕、經過一段時間、對話期間可用的廣告空間有所變更等等。
使用 API 叫用事件
針對 Sessions
類型的 detectIntent
呼叫提出要求時,要求會包含 queryInput.event
欄位,用於叫用事件。這個欄位的類型為 EventInput
,其中包含事件名稱、選用參數和語言代碼的欄位。
向偵測意圖呼叫提供事件時,請勿提供其他資料,例如使用者表達式。這個呼叫的唯一目的是叫用事件並觸發意圖。
使用執行要求叫用事件
您可以設定 WebhookResponse
的 followupEventInput
欄位,透過執行要求叫用事件,並可選擇設定 followupEventInput.parameters
欄位,向意圖提供參數。
例如:
{
"followupEventInput": {
"name": "event-name",
"parameters": {
"parameter-name-1": "parameter-value-1",
"parameter-name-2": "parameter-value-2"
},
"languageCode": "en-US"
}
}
如果為 WebhookResponse
設定 followupEventInput
參數,Dialogflow 會忽略 fulfillmentText
、fulfillmentMessages
和 payload
欄位。此外,followupEventInput.languageCode
欄位是必填欄位,但 Dialogflow 會忽略這個欄位,因為語言已在原始意圖偵測要求中定義。
Dialogflow 收到包含事件的 Webhook 回應時,會立即觸發定義了該事件的對應意圖。
實際流程步驟如下:
- 使用者輸入或說出表達內容。
- Dialogflow 比對出使用者表達內容與 Intent-1 相符,而 Intent-1 已針對執行要求進行設定。
- Dialogflow 向您的伺服器傳送 Webhook 要求。
- 您的伺服器傳回包含後續追蹤事件的 Webhook 回應。
- Dialogflow 不會因為比對出 Intent-1 而回應使用者,而會觸發針對該事件設定的 Intent-2。
- Dialogflow 會當做使用者啟動了 Intent-2 相符項目繼續作業,並處理 Intent-2 的設定所指定的必要參數和執行要求。
鏈結意圖相符項目和 Webhook 回應事件
您可以鏈結意圖相符項目和 Webhook 回應事件。在上述流程中,您也可針對執行要求設定 Intent-2。如果您伺服器的 Webhook 回應提供其他事件,Dialogflow 會繼續比對針對事件設定的 Intent-3,而不會因 Intent-2 而回應使用者。
在鏈結結束之前,Dialogflow 不會回應使用者。以這種方式鏈結意圖時,每個 Webhook 回應都必須在達到逾時限制前傳送。