本頁面說明 Google Chat 應用程式如何接收及 回應使用者互動 (也稱為 Google Chat 應用程式) 互動事件。
本頁說明如何執行下列操作:
- 設定 Chat 應用程式以接收互動 事件。
- 處理基礎架構中的互動事件。
- 在適當情況下,回應互動事件。
必要條件
已啟用互動功能的 Google Chat 應用程式。如要建立 互動式 Chat 應用程式,請完成下列其中一個快速入門導覽課程 在要使用的應用程式架構中:
- 含有 Google Cloud Functions 的 HTTP 服務
- Google Apps Script
- Google Cloud Dialogflow CX
- Google Cloud Pub/Sub
互動事件的運作方式
「Google Chat 應用程式互動事件」代表使用者採取的動作 使用者如何叫用 Chat 應用程式或與 Chat 應用程式互動。例如 使用 @號提及 Chat 應用程式,或將該應用程式新增至 空白鍵。當使用者與 Chat 應用程式互動時, Google Chat 會傳送互動事件給 Chat 應用程式。 Chat 應用程式可以利用活動處理 互動及產生回應
舉例來說,Chat 擴充應用程式會利用互動事件執行下列任一操作: 包括:
互動事件範例 | Chat 應用程式的一般回覆 |
---|---|
使用者叫用 Chat 應用程式的方式如下: 使用 @ 號提及他人,或是使用斜線指令。 |
Chat 應用程式會處理訊息的指令
建立訊息。例如,Chat 即時通訊應用程式
/about 指令,其中顯示訊息來說明
Chat 應用程式可以執行多項操作。 |
使用者將 Chat 應用程式新增到 聊天室。 | Chat 應用程式傳送新手上路程序 訊息,說明聊天室的用途以及使用者與聊天室互動的方式 基礎架構 |
使用者移除 聊天室中的 Chat 應用程式。 | Chat 擴充應用程式會移除所有收到的通知 (例如刪除 Webhook) 並清除任一 內部儲存空間 |
使用者點選 Chat 應用程式。 | Chat 應用程式會處理並儲存 使用者提交的資料,或傳回其他資訊卡或對話方塊。 |
Google Chat 會針對每種使用者互動類型傳送不同類型的
協助 Chat 應用程式處理
對應的事件類型舉例來說,Google Chat 會使用活動類型
ADDED_TO_SPACE
用於使用者加入
將即時通訊應用程式加到聊天室,
Chat 擴充應用程式可處理回覆,例如:
歡迎訊息加入聊天室。如要查看所有支援的互動事件,請參閱
EventType
參考資料
說明文件。
接收 Chat 應用程式互動事件
本節將說明如何接收及處理以下項目的互動事件: Chat 應用程式。
設定 Chat 應用程式以接收互動事件
並非所有 Chat 擴充應用程式都具有互動功能。例如: 連入 Webhook 只能傳送送出訊息, 無法回覆使用者如果您要建立互動式 Chat 應用程式,您必須選擇能允許 Chat 擴充應用程式接收、處理及回覆互動 事件。如要進一步瞭解如何設計 Chat 應用程式,請參閱 Chat 擴充應用程式實作架構。
針對要建構的每個互動功能,您必須更新 設為即時通訊 API 設定,讓 Google Chat 可以 相關互動事件:
前往 Google Cloud 控制台中的「Chat API」頁面,然後按一下 「Configuration」(設定) 頁面:
在「互動功能」下方,查看設定,並依據 您想要建構的功能:
欄位 說明 功能 必要欄位。這組欄位可決定 Chat 應用程式與使用者互動的方式: - 接收 1:1 訊息:使用者可以直接在 Google Chat 中找到 Chat 應用程式並傳送訊息。
- 加入聊天室和群組對話:使用者可以將 Chat 應用程式新增至聊天室和群組對話。
連線設定 必要欄位。Chat 應用程式的端點,可以是下列其中一個: - 應用程式網址:代管 Chat 應用程式實作的 HTTPS 端點。
- Apps Script 專案:實作 Chat 應用程式的 Apps Script 專案的部署作業 ID。
- Cloud Pub/Sub 主題名稱:Chat 應用程式訂閱為端點的 Pub/Sub 主題。
- Dialogflow:透過 Dialogflow 整合註冊 Chat 應用程式。詳情請參閱「建構能理解自然語言的 Dialogflow Google Chat 應用程式」。
斜線指令 選用設定。可在 Google Chat 中向使用者顯示的指令。允許使用者在 Google Chat 中查看 Chat 應用程式的核心動作,並選擇所需動作。詳情請參閱「以 Chat 應用程式的形式回應斜線指令」。 連結預覽 選用設定。Chat 應用程式可辨識的網址模式,並在使用者傳送連結時提供額外內容。詳情請參閱「預覽連結」一文。 顯示設定 選用設定。最多 5 人,或一或多個可查看及安裝 Chat 應用程式的 Google 群組。您可以使用這個欄位測試 Chat 擴充應用程式,或是與團隊分享 Chat 應用程式。詳情請參閱「測試互動式功能」。 按一下 [儲存]。儲存 Chat 應用程式時 您的 Chat 應用程式只要處於 Google Workspace 機構中的特定使用者。
Chat 應用程式現已設為可接收互動 以及 Google Chat 中的活動。
處理服務的 HTTP 呼叫重試作業
如果傳送至服務的 HTTPS 要求失敗 (例如逾時或臨時網路) 如果 HTTPS 狀態有誤或非 2xx HTTPS 狀態碼,Google Chat 可能會再次嘗試傳送 數次 (但不保證有效)。因此, 即時通訊應用程式可能會在以下時間多次收到相同的訊息: 或在特定情況下。如果要求成功完成,但傳回無效 訊息酬載,Google Chat 不會重試要求。
處理或回應互動事件
本節說明 Google Chat 應用程式可如何處理及回覆 互動事件。
Chat 應用程式從以下來源收到互動事件後: Google Chat 的回覆方式很多,在許多情況下 即時通訊應用程式會透過訊息回覆使用者。 Google Chat 應用程式也可以查詢資料中的部分資訊 記錄互動事件資訊等等。 這個處理行為基本上是定義 Google Chat 應用程式。
如要同步回覆,Chat 應用程式必須回應 回應,且回應必須張貼在 是否有互動發生。否則,Chat 應用程式可以 以非同步方式回應
Chat 擴充應用程式會針對每個互動事件收到「要求主體」。 這是代表事件的 JSON 酬載您可以使用 用於處理回應的資訊如需事件酬載的範例,請參閱 Chat 應用程式互動事件類型。
下圖示範瞭如何 Google Chat 應用程式通常會處理或回覆不同類型的問題 互動事件:
即時回覆
互動事件可讓 Chat 擴充應用程式即時回應。 同步方式:同步回應不需要 authentication。
回應加入聊天室
在這個範例中,Chat 應用程式會建立並傳送文字 系統就會顯示訊息如要瞭解 新手上路使用者,請參閱 向使用者介紹 Chat 應用程式。
如要在使用者新增 Chat 應用程式時傳送簡訊
聊天室、Chat 應用程式
回應 ADDED_TO_SPACE
「事件」。如要回覆
ADDED_TO_SPACE
與簡訊的互動事件,請使用下列程式碼:
Node.js
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} req The event object from Chat API.
* @param {Object} res The response object from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
exports.onMessage = function onMessage(req, res) {
if (req.method === 'GET' || !req.body.message) {
res.send(
'Hello! This function is meant to be used in a Google Chat space.');
}
// Send an onboarding message when added to a Chat space
if (req.body.type === 'ADDED_TO_SPACE') {
res.json({
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To
learn what else I can do, type `/help`.'
});
}
};
Apps Script
/**
* Sends an onboarding message when the Chat app is added to a space.
*
* @param {Object} event The event object from Chat API.
* @return {Object} Response from the Chat app. An onboarding message that
* introduces the app and helps people get started with it.
*/
function onAddToSpace(event) {
return {
'text': 'Hi, Cymbal at your service. I help you manage your calendar
from Google Chat. Take a look at your schedule today by typing
`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn
what else I can do, type `/help`.'
}
}
程式碼範例會傳回下列文字訊息:
其他回應互動的範例
如要建立互動事件的同步回應,請參閱下文 指南:
以非同步方式回應
即時通訊應用程式有時必須在 30 秒後回應互動事件 或是在聊天室外執行的工作,在聊天室中發生互動事件 。舉例來說,Chat 應用程式可能需要 則在完成長時間執行的工作後回應使用者在本例中 即時通訊應用程式可以呼叫 Google Chat API,以非同步的方式回應。
如要使用 Chat API 建立訊息,請參閱 建立訊息。如需使用指南 如需其他 Chat API 方法,請參閱 Chat API 總覽。