為避免使用者在 Google Chat 中分享連結時切換情境,您的 Chat 應用程式可以將資訊卡附加至訊息,預覽連結,提供更多資訊,並讓使用者直接在 Google Chat 中採取行動。
舉例來說,假設 Google Chat 聊天室包含公司所有客服專員,以及名為 Case-y 的 Chat 應用程式。服務專員經常在 Chat 聊天室中分享客戶服務案件的連結,但每次同事都必須開啟案件連結,才能查看指派對象、狀態和主旨等詳細資料。同樣地,如果有人想接管案件或變更狀態,也需要開啟連結。
連結預覽功能可讓聊天室的常駐 Chat 應用程式 Case-y,在使用者分享案件連結時,附加顯示指派對象、狀態和主旨的資訊卡。代理商可透過資訊卡上的按鈕取得案件擁有權,並直接從對話串變更狀態。
連結預覽功能的運作方式
如果有人在訊息中加入連結,系統會顯示方塊,告知對方 Chat 應用程式可能會預覽連結。

傳送訊息後,連結會傳送至 Chat 應用程式,接著系統會產生並將資訊卡附加至使用者的訊息。

除了連結外,資訊卡還會提供連結的額外資訊,包括按鈕等互動元素。您的即時通訊應用程式可以更新附加的資訊卡,以回應使用者互動 (例如點選按鈕)。
如果使用者不希望 Chat 應用程式在訊息中附加資訊卡來預覽連結,可以點選預覽方塊上的 ,防止預覽連結。使用者隨時可以點選「移除預覽」,移除附加的資訊卡。
必要條件
HTTP
Apps Script
接收及回應使用者互動的 Google Chat 應用程式。如要建構一個,請完成 Apps Script 快速入門導覽課程。
設定連結預覽
在 Google Cloud 控制台的 Chat 應用程式設定頁面中,將特定連結 (例如 example.com、support.example.com 和 support.example.com/cases/) 註冊為網址模式,Chat 應用程式就能預覽這些連結。

- 開啟 Google Cloud 控制台。
- 按一下「Google Cloud」旁的向下箭頭 ,開啟 Chat 應用程式的專案。
- 在搜尋欄位中輸入
Google Chat API,然後點選「Google Chat API」。 - 依序點選「管理」>「設定」。
- 在「連結預覽」下方,新增或編輯網址模式。
- 如要為新的網址模式設定連結預覽,請按一下「新增網址模式」。
- 如要編輯現有網址模式的設定,請按一下向下箭頭 。
在「主機模式」欄位中,輸入網址模式的網域。Chat 應用程式會預覽這個網域的連結。
如要讓 Chat 應用程式預覽特定子網域 (例如
subdomain.example.com) 的連結,請加入該子網域。如要讓 Chat 應用程式預覽整個網域的連結,請指定萬用字元,並以星號 (*) 做為子網域。舉例來說,
*.example.com符合subdomain.example.com和any.number.of.subdomains.example.com。在「路徑前置字元」欄位中,輸入要附加至主機模式網域的路徑。
如要比對主機模式網域中的所有網址,請將「路徑前置字串」留空。
舉例來說,如果主機模式為
support.example.com,如要比對在support.example.com/cases/託管的案件網址,請輸入cases/。按一下「完成」。
按一下 [儲存]。
現在,只要有人在含有您 Chat 應用程式的 Chat 聊天室中,傳送符合連結預覽網址模式的連結,您的應用程式就會預覽該連結。
預覽連結
為特定連結設定連結預覽功能後,Chat 應用程式就能辨識並預覽該連結,方法是在連結中附加更多資訊。
在包含 Chat 應用程式的 Chat 聊天室中,如果有人傳送的訊息含有符合連結預覽網址模式的連結,Chat 應用程式就會收到含有 MessagePayload 的事件物件。在酬載中,message.matchedUrl (chat.messagePayload.message.matchedUrl.url) 物件包含使用者在訊息中加入的連結:
JSON
message: {
matchedUrl: {
url: "https://support.example.com/cases/case123"
},
... // other message attributes redacted
}
只要檢查 MESSAGE 事件酬載 (chat.messagePayload.message.matchedUrl.url) 中是否有 matchedUrl 欄位,Chat 應用程式就能在訊息中加入預覽連結的相關資訊。Chat 應用程式可以回覆基本文字訊息,也可以附加資訊卡。
以簡訊回覆
如要取得基本回覆,Chat 應用程式可以透過回覆簡單的訊息來預覽連結。這個範例會附加訊息,重複符合連結預覽網址模式的連結網址。
Node.js
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Python
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Java
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Apps Script
附加可預覽連結的資訊卡
如要將資訊卡附加至預覽連結,請傳回含有 ChatDataActionMarkup 物件 (類型為 UpdateInlinePreviewAction) 的動作 DataActions。
在下列範例中,Chat 應用程式會將預覽資訊卡新增至包含網址模式 support.example.com 的訊息。

Node.js
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Python
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Java
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Apps Script
更新連結預覽資訊卡
當使用者與連結預覽資訊卡互動時 (例如點選資訊卡上的按鈕),Chat 應用程式可以更新資訊卡。
如要更新資訊卡,Chat 應用程式必須傳回動作 DataActions,並包含下列其中一個 ChatDataActionMarkup 物件:
- 如果使用者傳送訊息,請傳回
UpdateMessageAction物件。 - 如果訊息是由 Chat 應用程式傳送,請傳回
UpdateInlinePreviewAction物件。
如要判斷訊息傳送者,請使用事件酬載 (buttonClickedPayload) 檢查傳送者 (message.sender.type) 是否設為 HUMAN (使用者) 或 BOT (Chat 應用程式)。
以下範例說明當使用者點選「指派給我」按鈕時,即時通訊應用程式如何更新連結預覽畫面,方法是更新資訊卡的「受讓人」欄位並停用按鈕。

Node.js
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Python
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Java
將 FUNCTION_URL 替換為處理按鈕點擊事件的 HTTP 端點。
Apps Script
限制和注意事項
為 Chat 應用程式設定連結預覽時,請注意下列限制和考量事項:
- 每個 Chat 應用程式最多支援 5 個網址模式的連結預覽。
- 即時通訊應用程式會預覽每則訊息中的一個連結。如果單一訊息中有多個可預覽的連結,系統只會預覽第一個可預覽的連結。
- 即時通訊應用程式只會預覽開頭為
https://的連結,因此https://support.example.com/cases/會預覽,但support.example.com/cases/不會。 - 除非訊息包含其他會傳送至 Chat 應用程式的資訊 (例如斜線指令),否則連結預覽功能只會將連結網址傳送至 Chat 應用程式。
- 如果使用者發布連結,只有在使用者與連結預覽資訊卡互動 (例如點選按鈕) 時,Chat 應用程式才能更新資訊卡。您無法在
Message資源上呼叫 Chat API 的update()方法,以非同步方式更新使用者的訊息。 - Chat 應用程式必須為聊天室中的所有使用者預覽連結,因此訊息必須省略
privateMessageViewer欄位。
偵錯連結預覽
導入連結預覽功能時,您可能需要讀取應用程式記錄,以便對 Chat 應用程式進行偵錯。如要讀取記錄檔,請前往 Google Cloud 控制台的「記錄檔探索工具」。
非外掛程式的 Chat 應用程式:預覽連結
下列文件適用於非 Google Workspace 外掛程式的 Chat 擴充應用程式。如要遷移非外掛程式的 Chat 擴充應用程式,請參閱「將 Google Chat 擴充應用程式轉換為 Google Workspace 外掛程式」。
在包含非外掛程式 Chat 應用程式的 Chat 聊天室中,如果有人傳送的訊息含有符合連結預覽網址模式的連結,Chat 應用程式就會收到 MESSAGE 互動事件。互動事件的 JSON 酬載包含 matchedUrl 欄位:
JSON
message: {
matchedUrl: {
url: "https://support.example.com/cases/case123"
},
... // other message attributes redacted
}
透過檢查 MESSAGE 事件酬載中是否有 matchedUrl 欄位,非外掛程式的 Chat 應用程式可以將資訊新增至含有預覽連結的訊息。
以簡訊回覆
如要取得基本回覆,只要使用非外掛程式的 Chat 應用程式,以簡單的訊息回覆連結,即可預覽連結。這個範例會附加訊息,重複符合連結預覽網址模式的連結網址:
Node.js
Python
Java
Apps Script
附加可預覽連結的資訊卡
如要在非外掛程式的 Chat 應用程式中,將資訊卡附加至預覽連結,請傳回 ActionResponse (類型為 UPDATE_USER_MESSAGE_CARDS)。這個範例會附加基本資訊卡:
Node.js
Python
Java
Apps Script
這個範例會傳回資訊卡 JSON,藉此傳送資訊卡訊息。您也可以使用 Apps Script 資訊卡服務。
更新連結預覽資訊卡
如要在非外掛程式的 Chat 應用程式中更新連結預覽資訊卡,請處理 CARD_CLICKED 互動事件,並根據傳送含有連結預覽訊息的使用者,傳回 actionResponse:
- 如果使用者傳送訊息,請將
actionResponse.type設為UPDATE_USER_MESSAGE_CARDS。 - 如果訊息是由 Chat 應用程式傳送,請將
actionResponse.type設為UPDATE_MESSAGE。
如要判斷訊息傳送者,可以使用互動事件的 message.sender.type 欄位,查看傳送者是 HUMAN 使用者還是 BOT。
下例說明非外掛程式的即時通訊應用程式,如何在使用者點按「指派給我」按鈕時,更新連結預覽畫面,方法是更新資訊卡的「受讓人」欄位並停用按鈕:
Node.js
Python
Java
Apps Script
這個範例會傳回資訊卡 JSON,藉此傳送資訊卡訊息。您也可以使用 Apps Script 資訊卡服務。