本指南說明 Google Chat 應用程式如何在以卡片為基礎的介面中建立表單輸入內容,以便收集及處理使用者提供的資訊。
Chat 應用程式會向使用者索取資訊,以便在 Chat 中或在 Chat 之外執行動作,包括以下方式:
- 調整設定。例如,讓使用者自訂通知設定,或將 Chat 應用程式新增至一個或多個聊天室。
- 在其他 Google Workspace 應用程式中建立或更新資訊。例如,讓使用者建立 Google 日曆活動。
- 允許使用者存取及更新其他應用程式或網路服務中的資源。舉例來說,Chat 應用程式可協助使用者直接在 Chat 聊天室中更新支援單狀態。
必要條件
Node.js
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Python
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Java
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Apps Script
已啟用互動功能的 Google Chat 應用程式。如要在 Apps Script 中建立互動式 Chat 應用程式,請完成這個快速入門。
使用資訊卡建立表單
如要收集資訊,Chat 應用程式會設計表單及其輸入內容,並將這些項目建構為資訊卡。如要向使用者顯示資訊卡,Chat 應用程式可以使用下列 Chat 介面:
Chat 應用程式可以使用下列小工具建立資訊卡:
表單輸入小工具,用於要求使用者提供資訊。您可以視需要在表單輸入小工具中加入驗證,確保使用者輸入的資訊格式正確無誤。聊天應用程式可以使用下列表單輸入小工具:
在以下範例中,資訊卡會使用文字輸入、日期/時間挑選器和選項輸入功能收集聯絡資訊:
如需使用此聯絡人表單的 Chat 應用程式範例,請參閱以下程式碼:
Node.js
Python
Java
Apps Script
如要進一步瞭解可用於收集資訊的互動式小工具,請參閱「設計互動式資訊卡或對話方塊」。
接收互動式小工具的資料
每當使用者按下按鈕,Chat 應用程式就會收到包含互動資訊的 CARD_CLICKED
互動事件。CARD_CLICKED
互動事件的酬載包含 common.formInputs
物件,其中包含使用者輸入的任何值。
您可以從物件 common.formInputs.WIDGET_NAME
擷取值,其中 WIDGET_NAME 是您為小工具指定的 name
欄位。系統會將值傳回為小工具的特定資料類型 (以 Inputs
物件表示)。
以下是 CARD_CLICKED
互動事件的部分內容,其中使用者輸入了每個小工具的值:
HTTP
{
"type": "CARD_CLICKED",
"common": { "formInputs": {
"contactName": { "stringInputs": {
"value": ["Kai 0"]
}},
"contactBirthdate": { "dateInput": {
"msSinceEpoch": 1000425600000
}},
"contactType": { "stringInputs": {
"value": ["Personal"]
}}
}}
}
Apps Script
{
"type": "CARD_CLICKED",
"common": { "formInputs": {
"contactName": { "": { "stringInputs": {
"value": ["Kai 0"]
}}},
"contactBirthdate": { "": { "dateInput": {
"msSinceEpoch": 1000425600000
}}},
"contactType": { "": { "stringInputs": {
"value": ["Personal"]
}}}
}}
}
為了接收資料,Chat 應用程式會處理互動事件,取得使用者輸入小工具的值。下表說明如何取得特定表單輸入小工具的值。針對每個小工具,表格會顯示小工具接受的資料類型、互動事件中儲存的值,以及範例值。
表單輸入小工具 | 輸入資料類型 | 互動事件的輸入值 | 範例值 |
---|---|---|---|
textInput |
stringInputs |
event.common.formInputs.contactName.stringInputs.value[0] |
Kai O |
selectionInput |
stringInputs |
如要取得第一個或唯一的值,請使用 event.common.formInputs.contactType.stringInputs.value[0] |
Personal |
dateTimePicker 只接受日期。 |
dateInput |
event.common.formInputs.contactBirthdate.dateInput.msSinceEpoch 。 |
1000425600000 |
將資料轉移到其他卡片
使用者提交資訊卡後,您可能需要傳回其他資訊卡,才能執行下列任一操作:
- 建立不同的部分,協助使用者填寫較長的表單。
- 讓使用者預覽並確認初始資訊卡中的資訊,方便他們在提交前檢查答案。
- 動態填入表單的其餘部分。舉例來說,如要提示使用者建立預約,Chat 應用程式可以顯示初始資訊卡,要求使用者提供預約原因,然後填入另一張資訊卡,根據預約類型提供可預約的時間。
如要從初始資訊卡轉移資料輸入內容,您可以使用 actionParameters
建立 button
小工具,其中包含小工具的 name
和使用者輸入的值,如以下範例所示:
Node.js
Python
Java
Apps Script
使用者按下按鈕時,Chat 應用程式會收到 CARD_CLICKED
互動事件,您可以透過該事件接收資料。
回應表單提交作業
接收資訊卡訊息或對話方塊的資料後,Chat 應用程式會回應,確認已收到資料或傳回錯誤。
在以下範例中,Chat 應用程式會傳送文字訊息,確認已成功收到透過對話方塊或資訊卡訊息提交的表單。
Node.js
Python
Java
Apps Script
如要處理及關閉對話方塊,您必須傳回 ActionResponse
物件,指定您要傳送確認訊息、更新原始訊息或資訊卡,或是只關閉對話方塊。如需操作步驟,請參閱「關閉對話方塊」。
疑難排解
當 Google Chat 應用程式或資訊卡傳回錯誤時,Chat 介面會顯示「發生錯誤」的訊息。或「無法處理您的要求」。有時 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或資訊卡會產生意外結果,例如資訊卡訊息可能不會顯示。
雖然 Chat UI 可能不會顯示錯誤訊息,但當您開啟 Chat 應用程式的錯誤記錄功能時,系統會提供說明性錯誤訊息和記錄資料,協助您修正錯誤。如需查看、偵錯及修正錯誤的相關說明,請參閱「排解及修正 Google Chat 錯誤」一文。
相關主題
- 查看聯絡人管理員範例,這是一個 Chat 應用程式,可透過資訊卡訊息和對話方塊提示使用者填寫聯絡表單。
- 開啟互動式對話方塊