本指南說明如何使用 Google Chat API Message 資源的 update 方法,更新聊天室中的文字或資訊卡訊息。更新訊息可變更訊息屬性,例如訊息內容或資訊卡內容。您也可以在資訊卡訊息前加上文字訊息,或在文字訊息後附加資訊卡。
在 Chat API 中,即時通訊訊息是以 Message 資源表示。Chat 使用者只能傳送文字訊息,但 Chat 擴充應用程式可使用許多其他訊息功能,包括顯示靜態或互動式使用者介面、收集使用者資訊,以及傳送私人訊息。如要進一步瞭解 Chat API 提供的訊息功能,請參閱「Google Chat 訊息總覽」。
必要條件
Node.js
- Business 或 Enterprise Google Workspace 帳戶,且可存取 Google Chat。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用及設定 Google Chat API,為 Chat 擴充應用程式指定名稱、圖示和說明。
- 安裝 Node.js Cloud 用戶端程式庫。
- 根據您在 Google Chat API 要求中的驗證方式,建立存取憑證:
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案,然後儲存至本機目錄。 - 如要以 Chat 擴充應用程式的身分進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案。
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您要以使用者或 Chat 擴充應用程式的身分進行驗證, 選擇授權範圍。
Python
- Business 或 Enterprise Google Workspace 帳戶,且可存取 Google Chat。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用及設定 Google Chat API,為 Chat 擴充應用程式指定名稱、圖示和說明。
- 安裝 Python Cloud 用戶端程式庫。
- 根據您在 Google Chat API 要求中的驗證方式,建立存取憑證:
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案,然後儲存至本機目錄。 - 如要以 Chat 擴充應用程式的身分進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案。
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您要以使用者或 Chat 擴充應用程式的身分進行驗證, 選擇授權範圍。
Java
- Business 或 Enterprise Google Workspace 帳戶,且可存取 Google Chat。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用及設定 Google Chat API,為 Chat 擴充應用程式指定名稱、圖示和說明。
- 安裝 Java Cloud 用戶端程式庫。
- 根據您在 Google Chat API 要求中的驗證方式,建立存取憑證:
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案,然後儲存至本機目錄。 - 如要以 Chat 擴充應用程式的身分進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json的 JSON 檔案。
- 如要以 Chat 使用者身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您要以使用者或 Chat 擴充應用程式的身分進行驗證, 選擇授權範圍。
Apps Script
- Business 或 Enterprise Google Workspace 帳戶,且可存取 Google Chat。
- 設定環境:
- 建立 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 的執行個體,詳細說明更新後的訊息。
非同步更新卡片
您可以使用 replaceCards 方法,以非同步方式更新訊息中的資訊卡。這項功能適合在沒有使用者互動的情況下更新資訊卡內容,例如重新整理連結預覽畫面或更新工作狀態。這個方法適用於應用程式建立的訊息,包括代表使用者建立的訊息。
詳情請參閱「建立及更新互動式資訊卡」。