本頁面說明如何建構 Google Chat 應用程式 (Google Workspace 外掛程式),並使用 Dialogflow ES 理解及回覆自然語言。您也可以使用與 Google Chat 直接整合的 Dialogflow CX,按照 Dialogflow CX Google Chat 指南建立 Dialogflow CX Google Chat 應用程式。
目標
- 設定環境。
- 建立及部署 Dialogflow ES 虛擬服務專員。
- 建立及部署由 Dialogflow ES 虛擬服務專員支援的即時通訊應用程式。
- 測試 Chat 應用程式。
必要條件
- 具有 Google Chat 存取權的 Business 或 Enterprise 版 Google Workspace 帳戶。
- 啟用計費功能的 Google Cloud 專案。如要確認現有專案是否已啟用計費功能,請參閱「驗證專案的計費狀態」。如要建立專案及設定帳單,請參閱「建立 Google Cloud 專案」。
架構
下圖顯示以 Dialogflow 建構的 Chat 應用程式架構:
在上圖中,使用者與 Dialogflow Chat 應用程式互動時,資訊流程如下:
- 使用者在 Chat 中傳送訊息給 Chat 應用程式,無論是透過即時訊息或 Chat 聊天室。
- Dialogflow 虛擬服務專員 (位於 ) 會接收並處理訊息,然後產生回應。
- 您也可以使用 Dialogflow Webhook,讓 Dialogflow 代理程式與外部第三方服務互動,例如專案管理系統或票證工具。
- Dialogflow 虛擬服務專員會將回應傳回 Chat 中的 Chat 應用程式服務。
- 回覆會傳送至 Chat 聊天室。
設定環境
使用 Google API 前,您需要在 Google Cloud 專案中啟用這些 API。 您可以在單一 Google Cloud 專案中啟用一或多個 API。在 Google API 控制台中,啟用 Google Chat API 和 Dialogflow API。
確認您要在正確的 Cloud 專案中啟用 API,然後按一下「下一步」。
確認要啟用的 API 正確無誤,然後按一下「啟用」。
建立 Dialogflow ES 虛擬服務專員
如果您目前沒有 Dialogflow ES 代理程式:
- 前往 Dialogflow ES 主控台。
- 按一下「建立代理程式」。
- 為代理程式命名,並選取預設語言和時區。
- 將其與 Cloud 專案建立關聯。
- 點選「建立」。
- 視需要為 Chat 應用程式對話流程建構意圖和實體。您可以從問候意圖開始。
- 記下專案 ID。
如需詳細指南,請參閱「建構代理程式」。
建立 Chat 應用程式,並連結至 Dialogflow 代理程式
建立 Dialogflow ES 虛擬服務專員後,請按照下列步驟將其轉換為即時通訊應用程式:
在 Google API 控制台中,前往 Google Chat API。搜尋「Google Chat API」,然後按一下「Google Chat API」,再按一下「管理」。
按一下「設定」,然後設定 Chat 應用程式:
- 在「應用程式名稱」中輸入
Dialogflow App。 - 在「顯示圖片網址」中輸入
https://developers.google.com/workspace/chat/images/quickstart-app-avatar.png。 - 在「Description」(說明) 中輸入
Responds to real human conversation。 - 在「功能」下方,選取「加入聊天室和群組對話」。
- 在「連線設定」下方,選取「Dialogflow」。
- 在「Dialogflow settings」(Dialogflow 設定) 下方,選取「Dialogflow ES」。
- 將這個 Chat 擴充應用程式提供給網域中的特定使用者和群組,然後輸入電子郵件地址。
- 在「記錄」下方,選取「將錯誤記錄至 Logging」。
- 在「應用程式名稱」中輸入
按一下 [儲存]。
Chat 應用程式已準備好接收及回覆 Chat 訊息。
測試 Chat 應用程式
在 Google Chat 中傳送訊息給 Dialogflow ES Chat 應用程式,測試該應用程式。
使用您在新增自己為信任測試人員時提供的 Google Workspace 帳戶,開啟 Google Chat。
- 按一下 「發起新即時通訊」。
- 在「新增 1 位以上使用者」欄位中,輸入 Chat 應用程式的名稱。
從結果中選取 Chat 應用程式。系統會開啟即時訊息。
在與應用程式互傳的新即時訊息中輸入
Hello,然後按enter。Dialogflow Chat 應用程式會傳送問候訊息做為回應。
文字回覆
文字回覆會以簡訊形式傳送至 Google Chat。 使用這項格式設定,只要以特定 (Markdown Light) 符號括住文字,即可將文字設為粗體或斜體。
文字訊息回覆在視覺上與 Dialogflow 主控台中的預設文字回覆相同。不過,原始 API 回應看起來會有些許不同。 此外,這項作業也會將平台設定設為 GOOGLE_HANGOUTS,這在為多項整合服務建構代理程式時可能很有用。
"fulfillmentMessages": [
{
"text": {
"text": [
"This is a test."
]
},
"platform": "GOOGLE_HANGOUTS"
},
資訊卡
資訊卡回覆會以資訊卡訊息的形式傳送至 Google Chat。
圖片
圖片回覆會以 Google Chat 圖片小工具的形式傳送至 Google Chat。
自訂酬載
如要傳送其他類型的 Google Chat 訊息,可以使用自訂酬載。
Google Chat 自訂酬載可讓您建立更進階的資訊卡。一張資訊卡可以有一或多個區塊。每個區段都可以有標題。 您可以參閱 Google Workspace 外掛程式擴充 Chat 卡片參考指南,瞭解如何使用這項功能建立組合。不過,使用自訂酬載時,您必須提供 JSON 格式。
以下是建立含有資訊卡的訊息時,自訂酬載的範例:
{ "hangouts": { "hostAppDataAction": { "chatDataAction": { "createMessageAction": { "message": { "cardsV2": [{ "cardId": "pizza", "card": { "header": { "title": "Pizza Delivery Customer Support", "subtitle": "pizzadelivery@example.com", "imageUrl": "https://goo.gl/aeDtrS" }, "sections": [{ "widgets": [{ "textParagraph": { "text": " Your pizza is here!" }}]}] } }]}} }}}}
限制和注意事項
- 透過 Dialogflow 使用 Google Workspace 外掛程式時,即時通訊事件物件有下列限制和注意事項:
- 應用程式主畫面事件:目前尚未支援
APP_HOME事件。 - Dialogflow 查詢輸入內容:傳送至 Dialogflow 代理程式的查詢輸入內容文字取決於事件類型:
MESSAGE:即時通訊訊息的argumentText欄位值。APP_COMMAND:字串"APP_COMMAND_PAYLOAD"。ADDED_TO_SPACE:系統會傳送預設的歡迎事件。REMOVED_FROM_SPACE:字串"REMOVED_FROM_SPACE_PAYLOAD"。CARD_CLICKED:字串"BUTTON_CLICKED_PAYLOAD"。WIDGET_UPDATED:字串"WIDGET_UPDATED_PAYLOAD"(用於自動完成)。
- 完整事件酬載:系統會將對話互動事件的完整 JSON 酬載傳送至
WebhookRequest.payload欄位內的 Dialogflow。您可以在 Dialogflow 網路服務掛鉤中存取這項資訊。詳情請參閱 Dialogflow ES 網路服務掛鉤要求說明文件。
- 應用程式主畫面事件:目前尚未支援
- 回應指令和接收來自資訊卡或對話方塊的資料時,請注意下列事項:
- 如果 Dialogflow 代理程式需要處理 Chat 互動事件 JSON 酬載,可以使用 Dialogflow Webhook 檢查查詢參數中的自訂酬載。
- 如要從 Dialogflow 代理程式顯示對話方塊,請使用單一自訂 JSON 酬載回應,其中包含具有導覽
pushCard的RenderActions物件。 - 如要處理從資訊卡輸入的資料,可以使用 Dialogflow Webhook,並以包含適當 action 的單一自訂 JSON 酬載回應。
- 不支援連結預覽。
- 如果 Dialogflow 代理程式只回覆一則訊息,該訊息就會同步傳送至 Google Chat。如果 Dialogflow 代理程式回應多則訊息,系統會針對每則訊息呼叫一次 Chat API 中的
spaces.messages資源,以非同步方式將所有訊息傳送至 Chat。create - 將 Dialogflow ES 與 Chat 整合時,Dialogflow 虛擬服務專員和 Chat 應用程式必須在同一個 Google Cloud 專案中設定。
疑難排解
如要對 Chat 應用程式進行偵錯,請先查看錯誤記錄。由於這個應用程式使用 Dialogflow,因此您可以使用多項記錄和疑難排解資源:
Google Workspace 外掛程式記錄:查詢記錄,瞭解外掛程式行為的詳細資訊,包括與 Chat 的互動。請參閱「查詢 Google Workspace 外掛程式的記錄」。
Google Chat 應用程式錯誤:如需一般 Chat 應用程式錯誤訊息和修正方式,請參閱「排解及修正 Chat 應用程式錯誤」。
Dialogflow ES 對話記錄: 記錄 | Dialogflow ES
Dialogflow 一般疑難排解: 疑難排解 | Dialogflow
清除所用資源
為避免系統向您的 帳戶收取本教學課程所用資源的費用,建議您刪除 Cloud 專案。
- 在 Google API 控制台中,前往「管理資源」頁面。依序點選「選單」「IAM 與管理」>「管理資源」>。
- 在專案清單中選取要刪除的專案,然後按一下「刪除」圖示 。
- 在對話方塊中輸入專案 ID,然後按一下「Shut down」(關閉) 即可刪除專案。
相關主題
- Dialogflow CX 是透過 Chat 應用程式使用 Dialogflow 的另一種方式。