為避免使用者在 Google Chat 中分享連結時切換背景資訊,您的 Chat 應用程式可以在訊息中附加資訊卡來預覽連結,讓使用者直接透過 Google Chat 採取行動。
舉例來說,假設有一個 Google Chat 聊天室包含某間公司的所有客戶服務服務專員,以及名為 Case-y 的 Chat 應用程式。客服專員經常在 Chat 聊天室中分享客戶服務案件的連結,每次分享後,同事都必須開啟案件連結,查看指派者、狀態和主旨等詳細資料。同樣地,如果有人想接手案件或變更狀態,就必須開啟連結。
透過連結預覽功能,聊天室的常駐 Chat 應用程式 Case-y 可以在分享案件連結時,附加顯示指派對象、狀態和主旨的資訊卡。資訊卡上的按鈕可讓服務專員接手案件,並直接在聊天串流中變更狀態。
連結預覽的運作方式
當使用者在訊息中加入連結時,系統會顯示一個方塊,讓使用者知道 Chat 應用程式可能會預覽該連結。
傳送訊息後,連結會傳送至 Chat 應用程式,然後系統會產生並附加資訊卡至使用者的訊息。
除了連結之外,資訊卡還會提供連結的其他資訊,包括按鈕等互動元素。Chat 應用程式可根據使用者互動 (例如按鈕點選) 更新附加的資訊卡。
如果有人在訊息中附加資訊卡,而不希望 Chat 應用程式預覽連結,可以按一下預覽方塊上的
,禁止預覽。使用者隨時可以點選「Remove preview」,移除所附資訊卡。必要條件
Node.js
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Python
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Java
已啟用互動功能的 Google Chat 應用程式。如要使用 HTTP 服務建立互動式 Chat 應用程式,請完成這個快速入門導覽課程。
Apps Script
已啟用互動功能的 Google Chat 應用程式。如要在 Apps Script 中建立互動式 Chat 應用程式,請完成這個快速入門。
設定連結預覽
在 Google Cloud 控制台的 Chat 應用程式設定頁面中,將特定連結 (例如 example.com
、support.example.com
和 support.example.com/cases/
) 註冊為網址模式,讓 Chat 應用程式能夠預覽這些連結。
- 開啟 Google Cloud 控制台。
- 按一下「Google Cloud」旁邊的向下箭頭 ,然後開啟 Chat 應用程式的專案。
- 在搜尋欄位中輸入
Google Chat API
,然後按一下「Google Chat API」。 - 依序按一下「Manage」(管理) >「Configuration」(設定)。
- 在「連結預覽」下方,新增或編輯網址模式。
- 如要為新網址格式設定連結預覽,請按一下「新增網址格式」。
- 如要編輯現有網址模式的設定,請按一下向下箭頭 。
在「主機模式」欄位中,輸入網址模式的網域。Chat 應用程式將預覽這個網域的連結。
如要讓 Chat 應用程式預覽特定子網域 (例如
subdomain.example.com
) 的連結,請加入該子網域。如要讓 Chat 應用程式預覽整個網域的連結,請指定以星號 (*) 做為子網域的萬用字元。舉例來說,
*.example.com
符合subdomain.example.com
和any.number.of.subdomains.example.com
。在「Path prefix」欄位中輸入要附加至主機模式網域的路徑。
如要比對主機模式網域中的所有網址,請將「Path prefix」留空。
例如,如果主機模式是
support.example.com
,如要比對託管於support.example.com/cases/
的案件的網址,請輸入cases/
。按一下 [完成]。
按一下 [儲存]。
從現在起,只要有人在 Chat 聊天室中加入與連結預覽網址模式相符的連結,應用程式就會在該聊天室中預覽連結。
預覽連結
為特定連結設定連結預覽後,Chat 應用程式就能為其附加更多資訊,以辨識並預覽連結。
在包含 Chat 應用程式的 Chat 空間中,如果某人的訊息含有與連結預覽網址模式相符的連結,Chat 應用程式就會收到 MESSAGE
互動事件。互動事件的 JSON 酬載包含 matchedUrl
欄位:
JSON
message: {
matchedUrl: {
url: "https://support.example.com/cases/case123"
},
... // other message attributes redacted
}
透過檢查 MESSAGE
事件酬載中是否存在 matchedUrl
欄位,Chat 應用程式便可透過預覽連結在訊息中加入資訊。Chat 應用程式可以回覆基本文字訊息,或附加資訊卡。
以簡訊回覆
對於基本回覆,Chat 應用程式可以透過回覆簡單的文字訊息來預覽連結。這個範例會附加訊息,重複符合連結預覽網址模式的連結網址。
Node.js
Python
Java
Apps Script
附加可預覽連結的資訊卡
如要將資訊卡附加至預覽的連結,請傳回 UPDATE_USER_MESSAGE_CARDS
類型的 ActionResponse
。本範例會附加基本資訊卡。
更新連結預覽資訊卡
當使用者與連結預覽資訊卡互動 (例如點選資訊卡上的按鈕) 時,Chat 應用程式可以更新該資訊卡。
如要更新資訊卡,Chat 應用程式必須處理 CARD_CLICKED
互動事件,並根據含有連結預覽訊息的傳送者傳回 actionResponse
:
- 如果使用者傳送訊息,請將
actionResponse.type
設為UPDATE_USER_MESSAGE_CARDS
。 - 如果是 Chat 應用程式傳送訊息,請將
actionResponse.type
設為UPDATE_MESSAGE
。
如要判斷訊息的傳送者,您可以使用互動事件的 message.sender.type
欄位,查看傳送者是 HUMAN
使用者還是 BOT
。
以下範例說明如何在使用者點選「指派給我」按鈕時,透過更新資訊卡的「指派者」欄位並停用按鈕,讓 Chat 應用程式更新連結預覽畫面。
限制和注意事項
設定 Chat 應用程式的連結預覽時,請注意下列限制和注意事項:
- 每個 Chat 應用程式最多可支援 5 個網址模式的連結預覽。
- Chat 應用程式會為每則訊息預覽一個連結。如果單一訊息中有多個可預覽的連結,系統只會預覽第一個可預覽的連結。
- 即時通訊應用程式只會預覽以
https://
開頭的連結,因此https://support.example.com/cases/
會預覽,但support.example.com/cases/
不會。 - 除非訊息包含要傳送至 Chat 應用程式的其他資訊 (例如 斜線指令),否則只有連結網址會透過連結預覽傳送至 Chat 應用程式。
- 如果使用者發布連結,Chat 應用程式只有在使用者與資訊卡互動時 (例如點選按鈕),才能更新連結預覽資訊卡。您無法在
Message
資源上呼叫 Chat API 的update()
方法,以非同步方式更新使用者的訊息。 - 聊天應用程式必須為聊天室中的所有成員預覽連結,因此訊息必須省略
privateMessageViewer
欄位。
偵錯連結預覽
在實作連結預覽時,您可能需要讀取應用程式記錄來偵錯 Chat 應用程式。如要讀取記錄檔,請前往 Google Cloud 控制台的「Logs Explorer」(記錄檔探索工具)。