本指南說明如何在 Google Chat API 的 Message
資源上使用 update()
方法,更新聊天室中的文字或資訊卡訊息。更新訊息,變更訊息屬性,例如訊息內容或資訊卡內容。您也可以在資訊卡訊息前加上簡訊,或將卡片附加至簡訊中。
在 Chat API 中,Message
資源會以 Chat 訊息表示。雖然 Chat 使用者只能傳送含有文字的訊息,但 Chat 應用程式可以使用許多其他訊息功能,包括顯示靜態或互動式使用者介面、向使用者收集資訊,以及私下傳送訊息。如要進一步瞭解 Chat API 提供的訊息功能,請參閱 Google Chat 訊息總覽。
必要條件
Node.js
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用並設定 Google Chat API,並為 Chat 應用程式提供名稱、圖示和說明。
- 安裝 Node.js Cloud 用戶端程式庫。
- 根據您要在 Google Chat API 要求中驗證的方式建立存取憑證:
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
client_secrets.json
的 JSON 檔案,並儲存在本機目錄中。 - 如要以 Chat 應用程式的形式進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json
的 JSON 檔案。
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您想以使用者或 Chat 應用程式身分驗證, 選擇授權範圍。
Python
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用並設定 Google Chat API,並為 Chat 應用程式提供名稱、圖示和說明。
- 安裝 Python Cloud 用戶端程式庫。
- 根據您要在 Google Chat API 要求中驗證的方式建立存取憑證:
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
client_secrets.json
的 JSON 檔案,並儲存在本機目錄中。 - 如要以 Chat 應用程式進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json
的 JSON 檔案。
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您想以使用者或 Chat 應用程式身分驗證, 選擇授權範圍。
Java
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 使用 Chat 應用程式的名稱、圖示和說明啟用並設定 Google Chat API。
- 安裝 Java Cloud 用戶端程式庫。
- 根據您要在 Google Chat API 要求中驗證的方式建立存取憑證:
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
client_secrets.json
的 JSON 檔案,並儲存在本機目錄中。 - 如要以 Chat 應用程式進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json
的 JSON 檔案。
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您想以使用者或 Chat 應用程式身分驗證, 選擇授權範圍。
Apps Script
- 具備 Google Chat 存取權的 Google Workspace 企業或進階版帳戶。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用並設定 Google Chat API,並為 Chat 應用程式提供名稱、圖示和說明。
- 建立獨立的 Apps Script 專案,並啟用進階 Chat 服務。
- 在本指南中,您必須使用使用者或應用程式驗證。如要以 Chat 應用程式驗證,請建立服務帳戶憑證。如需步驟,請參閱「以 Google Chat 應用程式身分驗證及授權」。
- 根據您想以使用者或 Chat 應用程式身分驗證, 選擇授權範圍。
代表使用者更新訊息
透過使用者驗證,您只能更新訊息的文字。
如要更新包含使用者驗證的訊息,請在要求中傳遞以下內容:
- 指定
chat.messages
授權範圍。 - 呼叫
UpdateMessage()
方法。 - 使用以下方法,將
message
傳遞為Message
的例項:name
欄位設為要更新的訊息,其中包含空間 ID 和訊息 ID。- 由新文字設定的
text
欄位。
- 傳遞
updateMask
和text
值。
如果更新的訊息是資訊卡訊息,則文字會置於資訊卡前方 (資訊卡會繼續顯示)。
以下說明如何使用使用者驗證更新訊息,或在卡片訊息前面加上文字訊息:
Node.js
Python
Java
Apps Script
如要執行這個範例,請取代下列項目:
SPACE_NAME
:聊天室name
中的 ID。您可以呼叫ListSpaces()
方法,或從空間的網址取得 ID。MESSAGE_NAME
:訊息的name
的 ID。您可以使用 Chat API 以非同步方式建立訊息,或在建立訊息時指派自訂名稱,然後從回應主體中取得 ID。
Chat API 會傳回 Message
的例項,詳細說明已更新的訊息。
以 Chat 應用程式的形式更新訊息
有了應用程式驗證功能,文字與訊息資訊卡即可更新。
如要使用應用程式驗證功能更新訊息,請在要求中傳遞以下內容:
- 指定
chat.bot
授權範圍。 - 呼叫
UpdateMessage()
方法。 - 使用下列指令,將
message
做為Message
執行個體傳遞:name
欄位設為要更新的訊息,當中包含聊天室 ID 和訊息 ID。text
欄位設定為新文字 (如需更新)。cardsV2
欄位會使用新卡片 (如果需要更新)。
- 將包含欄位清單的
updateMask
傳遞至更新,例如text
和cardsV2
。
如果更新的訊息是資訊卡訊息,且文字已更新,則更新後的文字會置於資訊卡之前 (資訊卡會繼續顯示)。如果更新的訊息是文字訊息,且資訊卡已更新,則更新後的資訊卡會附加到文字 (文字會持續顯示)。
以下說明如何利用應用程式驗證更新訊息的文字和資訊卡:
Node.js
Python
Java
Apps Script
如要執行這個範例,請取代下列項目:
SPACE_NAME
:聊天室name
的 ID。您可以呼叫ListSpaces()
方法,或從空間的網址取得 ID。MESSAGE_NAME
:訊息name
中的 ID。您可以使用 Chat API 以非同步方式建立訊息,或在建立訊息時指派自訂名稱,然後從回應主體中取得 ID。
Chat API 會傳回 Message
的例項,詳細說明已更新的訊息。