Advanced Chat 服務可讓您在 Apps Script 中使用 Google Chat API。這個 API 可讓指令碼尋找、建立及修改 Chat 聊天室,在聊天室中新增或移除成員,以及讀取或發布含有文字、資訊卡、附件和表情符號的訊息。
必要條件
- 在 Google Cloud 控制台的 Chat API 設定頁面中設定的 Apps Script Google Chat 應用程式。應用程式的 Apps Script 專案必須使用標準 Google Cloud 專案,而非系統為 Apps Script 專案自動建立的預設專案。如要建立相容的 Google Chat 應用程式,請參閱「使用 Google Apps Script 建構 Google Chat 應用程式」。
- 為 Chat 擴充應用程式設定驗證。如要代表使用者執行動作,必須驗證使用者。如要以 Chat 應用程式身分執行動作,必須使用服務帳戶驗證應用程式。如要查看 Chat API 方法支援的驗證形式,請參閱「Google Chat API 呼叫所需的驗證類型」。
參考資料
如要進一步瞭解這項服務,請參閱 Chat API 參考說明文件。與 Apps Script 中的所有進階服務一樣,Chat 服務使用的物件、方法和參數與公開 API 相同。
程式碼範例
這些範例說明如何使用進階服務,執行常見的 Google Chat API 動作。
使用使用者憑證發布訊息
以下範例說明如何代表使用者將訊息發布至 Chat 空間。
將
chat.messages.create
授權範圍新增至 Apps Script 專案的appsscript.json
檔案:"oauthScopes": [ "https://www.googleapis.com/auth/chat.messages.create" ]
在 Apps Script 專案的程式碼中加入類似下列的函式:
使用應用程式憑證發布訊息
下列範例說明如何代表應用程式將訊息發布至 Google Chat 空間。使用進階 Google Chat 服務和服務帳戶時,您不需要在 appsscript.json
中指定授權範圍。如要瞭解如何使用服務帳戶進行驗證,請參閱「以 Google Chat 應用程式身分進行驗證」。
取得儲存空間
下列範例示範如何取得 Chat 空間的相關資訊。
將
chat.spaces.readonly
授權範圍新增至 Apps Script 專案的appsscript.json
檔案:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.readonly" ]
在 Apps Script 專案的程式碼中加入類似下列的函式:
建立聊天室
以下範例說明如何建立 Chat 聊天室。
將
chat.spaces.create
授權範圍新增至 Apps Script 專案的appsscript.json
檔案:"oauthScopes": [ "https://www.googleapis.com/auth/chat.spaces.create" ]
在 Apps Script 專案的程式碼中加入類似下列的函式:
列出成員資格
以下範例說明如何列出 Chat 空間的所有成員。
將
chat.memberships.readonly
授權範圍新增至 Apps Script 專案的appsscript.json
檔案:"oauthScopes": [ "https://www.googleapis.com/auth/chat.memberships.readonly" ]
在 Apps Script 專案的程式碼中加入類似下列的函式:
疑難排解
如果遇到 Error 400: invalid_scope
錯誤訊息 Some requested scopes cannot be shown
,表示您未在 Apps Script 專案的 appsscript.json
檔案中指定任何授權範圍。在大多數情況下,Apps Script 會自動判斷指令碼需要的範圍,但使用 Chat 進階服務時,您必須手動將指令碼使用的授權範圍新增至 Apps Script 專案的資訊清單檔案。請參閱「設定明確範圍」。
如要解決這項錯誤,請在 oauthScopes
陣列中,將適當的授權範圍新增至 Apps Script 專案的 appsscript.json
檔案。舉例來說,如要呼叫 spaces.messages.create
方法,請新增下列項目:
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
限制和注意事項
進階即時通訊服務不支援:
- Chat API 方法
media.download
。 - 開發人員預先發布版提供的 Chat API 方法
如要下載郵件附件或呼叫開發人員預覽版方法,請改用 UrlFetchApp
。