本指南說明如何在 Google Chat API 的 Message
資源上使用 create()
方法,執行下列任一操作:
- 傳送含有文字、資訊卡和互動式小工具的訊息。
- 傳送私人訊息給特定的 Chat 使用者。
- 發起或回覆訊息討論串。
- 為訊息命名,方便你在其他 Chat API 中指定 要求。
訊息大小上限 (包括任何文字或資訊卡) 為 32,000 個位元組。 如要傳送超過此大小的訊息,你的 Chat 應用程式 就必須傳送多則訊息。
除了呼叫 Chat API 來建立訊息,Chat 應用程式還可以建立及傳送訊息,回覆使用者的互動,例如在使用者將 Chat 應用程式加入聊天室後,發布歡迎訊息。回覆互動時,Chat 應用程式可以使用其他類型的訊息功能,包括互動式對話方塊和連結預覽介面。為了回覆使用者,Chat 應用程式會同步傳回訊息,而不會呼叫 Chat API。如要瞭解如何傳送訊息回應互動,請參閱「接收並回覆 Google Chat 應用程式互動內容」。
Chat 如何顯示及歸屬使用 Chat API 建立的訊息
您可以使用以下項目呼叫 create()
方法:
應用程式驗證
和使用者驗證。
Chat 會以不同方式區分訊息傳送者
取決於您使用的驗證類型。
當您以 Chat 應用程式驗證時,Chat 應用程式就會傳送訊息。
當您以使用者身分進行驗證時,Chat 應用程式會代表使用者傳送訊息。Chat 也會顯示 Chat 應用程式名稱,將訊息歸因於該應用程式。
驗證類型也會決定哪些訊息功能和介面 請附加在訊息中透過應用程式驗證,即時通訊應用程式可以傳送含有圖文並列、資訊卡式介面和互動式小工具的訊息。由於 Chat 使用者只能在訊息中傳送簡訊,您可以 僅在使用使用者驗證機制建立訊息時,才含有文字。 如要進一步瞭解 Chat API 提供的訊息功能,請參閱 Google Chat 訊息總覽。
本指南說明如何使用其中一種驗證類型傳送訊息 快速分享
必要條件
Node.js
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 設定環境:
- 建立 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 應用程式身分進行驗證,選擇授權範圍。
- Google Chat 聊天室:使用者或發出呼叫的 Chat 應用程式是其中成員。如要以 Chat 應用程式驗證,請將 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 應用程式的身分進行驗證,
建立服務帳戶
憑證,並將憑證儲存為 JSON 檔案
credentials.json
。
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您想以使用者或 Chat 應用程式身分進行驗證,選擇授權範圍。
- Google Chat 聊天室:使用者或發出呼叫的 Chat 應用程式是其中成員。如要以 即時通訊應用程式,新增 Chat 擴充應用程式至聊天室。
Java
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用並設定 Google Chat API。 圖示和說明
- 安裝 Java Cloud 用戶端程式庫。
- 根據您要在 Google Chat API 要求中驗證的方式,建立存取憑證:
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
client_secrets.json
的 JSON 檔案,並儲存在本機目錄中。 - 如要以 Chat 應用程式進行驗證,請建立服務帳戶憑證,並將憑證儲存為名為
credentials.json
的 JSON 檔案。
- 如要以 Chat 使用者的身分進行驗證,請建立 OAuth 用戶端 ID 憑證,並將憑證儲存為名為
- 根據您想以使用者或 Chat 應用程式身分進行驗證,選擇授權範圍。
- 通過驗證的 Google Chat 聊天室 撥打的即時通訊應用程式為成員。如要以 Chat 應用程式驗證,請將 Chat 應用程式新增至聊天室。
Apps Script
- 企業或企業 具有存取權的 Google Workspace 帳戶 Google Chat。
- 設定環境:
- 建立 Google Cloud 專案。
- 設定 OAuth 同意畫面。
- 啟用並設定 Google Chat API,並為 Chat 應用程式提供名稱、圖示和說明。
- 建立獨立的 Apps Script 專案, 並開啟 進階 Chat 服務。
- 在本指南中,您必須使用使用者或應用程式驗證。如要以 Chat 應用程式的形式進行驗證,請建立 自己的服務帳戶憑證詳細步驟請參閱 以 Google Chat 應用程式。
- 根據您想以使用者或 Chat 應用程式身分進行驗證,選擇授權範圍。
- Google Chat 聊天室:使用者或發出呼叫的 Chat 應用程式是其中成員。如要以 即時通訊應用程式,新增 Chat 擴充應用程式至聊天室。
以 Chat 應用程式的形式傳送訊息
本節說明如何使用應用程式驗證功能,傳送包含文字、資訊卡和互動式配件小工具的訊息。
如要呼叫 CreateMessage()
方法中,您必須在
要求:
chat.bot
授權範圍。- 您要發布訊息的
Space
資源。Chat 應用程式必須是聊天室的成員。 - 要建立的
Message
資源。如要定義訊息內容,您可以加上 RTF 格式 (text
), 一或多個資訊卡介面 (cardsV2
), 或兩者並行
您也可以選擇加入下列資訊:
- 要包含的
accessoryWidgets
欄位 訊息底部的互動式按鈕。 privateMessageViewer
欄位,用於私下傳送訊息給指定使用者。messageId
欄位:可讓您命名訊息,以便在其他 API 要求中使用。thread.threadKey
和messageReplyOption
欄位 發起或回覆討論串。如果聊天室沒有 但系統會忽略這個欄位。
以下程式碼示範 Chat 應用程式如何傳送訊息,並以 Chat 應用程式形式發布,其中包含文字、卡片和可點選的按鈕:
Node.js
Python
Java
Apps Script
如要執行這個範例,請將 SPACE_NAME
替換為空間 name
欄位的 ID。您可以呼叫
ListSpaces()
方法,或是從空格網址複製。
在郵件底部加入互動式小工具
在本指南的第一個程式碼範例中 Chat 應用程式訊息的 (稱為配件小工具)。配件小工具 顯示在訊息中的任何文字或資訊卡後方。您可以使用這些小工具,以多種方式提示使用者與訊息互動,包括:
- 評估訊息的準確度或滿意度。
- 回報與訊息或 Chat 應用程式相關的問題。
- 開啟相關內容的連結,例如說明文件。
- 在特定時間內,從 Chat 應用程式中略過或暫緩類似訊息。
如要新增配件小工具,請在要求主體中加入 accessoryWidgets[]
欄位,並指定要加入的一或多個小工具。
下圖顯示會附加的 Chat 應用程式 附有配件小工具的文字訊息,可讓使用者為自己的體驗評分 取得最新資訊
以下範例顯示會建立簡訊的要求主體
兩個配件按鈕使用者點選按鈕時,
函式 (例如 doUpvote
) 會處理互動:
{
text: "Rate your experience with this Chat app.",
accessoryWidgets: [{ buttonList: { buttons: [{
icon: { material_icon: {
name: "thumb_up"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doUpvote"
}}
}, {
icon: { material_icon: {
name: "thumb_down"
}},
color: { red: 0, blue: 255, green: 0 },
onClick: { action: {
function: "doDownvote"
}}
}]}}]
}
私下傳送訊息
即時通訊應用程式可私下傳送訊息,讓訊息只供聊天室中的特定使用者查看。當 Chat 應用程式傳送私人訊息時,訊息會顯示標籤,通知使用者該訊息只有他們能看見。
如要使用 Chat API 傳送私人訊息,請指定
privateMessageViewer
] 欄位的值。如要指定使用者,請將值設為
這個
User
代表 Chat 使用者的資源您也可以使用 User
資源的 name
欄位,如以下範例所示:
{
text: "Hello private world!",
privateMessageViewer: {
name: "users/USER_ID"
}
}
如要使用此範例,請將 USER_ID
或使用者專屬 ID,例如 12345678987654321
或
hao@cymbalgroup.com
。如要進一步瞭解如何指定使用者,請參閱「找出並指定 Google Chat 使用者」。
如要私下傳送訊息,請在要求中省略下列項目:
代表使用者傳送簡訊
本節說明如何使用 使用者驗證。 使用者驗證功能啟用後,訊息內容只能包含文字,且必須省略僅限於 Chat 應用程式可用的訊息功能,包括資訊卡介面和互動式小工具。
如要使用使用者驗證機制呼叫 CreateMessage()
方法,您必須指定
要求中的下列欄位:
- 授權範圍
。下列範例使用
chat.messages.create
範圍。 - 您要發布訊息的
Space
資源。已驗證的使用者必須是聊天室的成員。 -
Message
要建立的資源如要定義訊息內容,您必須加入text
欄位。
您也可以選擇加入下列資訊:
messageId
欄位:可讓您 命名訊息,以便在其他 API 要求中使用。thread.threadKey
和messageReplyOption
欄位 發起或回覆討論串。如果空間未使用執行緒,系統會忽略這個欄位。
以下程式碼示範如何使用 Chat 應用程式 可以代表通過驗證的使用者在指定聊天室中傳送簡訊:
Node.js
Python
Java
Apps Script
如要執行這個範例,請將 SPACE_NAME
替換為空間 name
欄位的 ID。您可以呼叫
ListSpaces()
方法,或是從空格網址複製。
在對話串中發起或回覆
如果是使用討論串的聊天室,您可以指定新訊息是發起討論串,還是回覆現有討論串。
根據預設,使用 Chat API 建立的訊息會啟動新串流。為了方便您日後識別及回覆該會話串,您可以在要求中指定會話串鍵:
- 在要求內文中,指定
thread.threadKey
] 欄位。 - 指定查詢參數
messageReplyOption
,以決定鍵已存在時的處理方式。
如何建立回覆現有討論串的訊息:
以下程式碼示範如何使用 Chat 應用程式 可以傳送文字訊息,或回覆系統識別出的討論串 每個空間的金鑰:
Node.js
Python
Java
Apps Script
如要執行這個範例,請取代下列項目:
THREAD_KEY
:聊天室中現有的執行緒金鑰,或 建立新的執行緒,為討論串命名。SPACE_NAME
:聊天室name
欄位的 ID。您可以呼叫ListSpaces()
方法,或是從空格網址複製。
輸入訊息名稱
如要在日後的 API 呼叫中擷取或指定訊息,您可以在要求中設定 messageId
欄位,為訊息命名。命名訊息可讓您指定訊息,而無需從訊息的資源名稱 (以 name
欄位表示) 儲存系統指派的 ID。
舉例來說,如要使用 get()
方法擷取訊息,您可以使用
指定要擷取哪些訊息的資源名稱。資源名稱是
格式為 spaces/{space}/messages/{message}
,其中 {message}
代表
您在建立 Deployment 時
撰寫新的電子郵件訊息
如要為訊息命名,請在建立訊息時,在 messageId
欄位中指定自訂 ID。messageId
欄位會設定
clientAssignedMessageId
擁有多個欄位,Message
)。
您只能在建立訊息時為其命名。您無法為或 修改現有郵件的自訂 ID。自訂 ID 必須符合下列規定 規定:
- 開頭為
client-
。例如,client-custom-name
是有效的自訂 ID,但custom-name
不是。 - 最多可包含 63 個字元,且只能使用小寫英文字母、數字和連字號。
- 聊天室中不得重複,Chat 應用程式無法使用 以便為不同訊息套用相同的自訂 ID。
以下程式碼示範如何使用 Chat 應用程式 可以代表 已驗證使用者:
Node.js
Python
Java
Apps Script
如要執行這個範例,請替換下列內容:
SPACE_NAME
:聊天室name
欄位的 ID。您可以呼叫ListSpaces()
方法,或從空間的網址取得 ID。MESSAGE-ID
:開頭訊息的名稱custom-
。不得與 指定聊天室中的即時通訊應用程式。
疑難排解
當 Google Chat 應用程式或資訊卡傳回錯誤時,Chat 介面會顯示「發生錯誤」的訊息。或「無法處理您的要求」。有時使用 Chat UI 不會顯示任何錯誤訊息,但 Chat 應用程式或 資訊卡產生非預期的結果例如資訊卡訊息 顯示。
雖然 Chat UI 可能不會顯示錯誤訊息,但當您開啟 Chat 應用程式的錯誤記錄功能時,系統會提供說明性錯誤訊息和記錄資料,協助您修正錯誤。如需觀看說明, 偵錯及修正錯誤,請參閱 疑難排解並修正 Google Chat 錯誤。
相關主題
- 使用卡片建立工具 設計及預覽 Chat 應用程式的 JSON 資訊卡訊息。
- 設定郵件格式。
- 取得訊息的詳細資料。
- 列出聊天室中的訊息。
- 更新訊息。
- 刪除訊息。
- 找出 Google Chat 訊息中的使用者。
- 使用連入 Webhook 傳送訊息至 Google Chat。