進階即時通訊服務
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Advanced Chat 服務可讓您在 Apps Script 中使用 Google Chat API。這個 API 可讓指令碼尋找、建立及修改 Chat 聊天室,在聊天室中新增或移除成員,以及讀取或發布含有文字、資訊卡、附件和表情符號的訊息。
必要條件
參考資料
如要進一步瞭解這項服務,請參閱 Chat API 參考說明文件。與 Apps Script 中的所有進階服務一樣,Chat 服務使用的物件、方法和參數與公開 API 相同。
程式碼範例
這些範例說明如何使用進階服務,執行常見的 Google Chat API 動作。
使用使用者憑證發布訊息
以下範例說明如何代表使用者將訊息發布至 Google 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 進階版服務不支援:
如要下載郵件附件或呼叫開發人員預覽版方法,請改用 UrlFetchApp
。
除非另有註明,否則本頁面中的內容是採用創用 CC 姓名標示 4.0 授權,程式碼範例則為阿帕契 2.0 授權。詳情請參閱《Google Developers 網站政策》。Java 是 Oracle 和/或其關聯企業的註冊商標。
上次更新時間:2025-08-31 (世界標準時間)。
[null,null,["上次更新時間:2025-08-31 (世界標準時間)。"],[[["\u003cp\u003eThe Advanced Chat service enables Apps Script to interact with the Google Chat API, allowing scripts to manage spaces, members, and messages.\u003c/p\u003e\n"],["\u003cp\u003eUtilizing this service requires setting up a Google Chat app in the Google Cloud console and configuring proper authentication (user or app).\u003c/p\u003e\n"],["\u003cp\u003eSample code snippets demonstrate common actions like posting messages and managing spaces using user or app credentials.\u003c/p\u003e\n"],["\u003cp\u003eThe service mirrors the Chat API's objects and methods but has limitations, such as not supporting media downloads or Developer Preview methods.\u003c/p\u003e\n"],["\u003cp\u003eTroubleshooting steps and workarounds are provided for potential issues like scope errors.\u003c/p\u003e\n"]]],[],null,["# Advanced Chat Service\n\nThe Advanced Chat service lets you use the\n[Google Chat API](/chat/api/guides) in\nApps Script. This API allows scripts to find, create, and modify\nChat spaces, add or remove members to spaces, and read or post\nmessages with text, cards, attachments, and reactions.\n\nPrerequisites\n-------------\n\n- An Apps Script Google Chat app configured on the Chat API configuration page in the Google Cloud console. The app's Apps Script project must use a standard Google Cloud project instead of the default one created automatically for Apps Script projects. To create a compatible Google Chat app, see [Build a Google Chat app with Google Apps Script](/workspace/add-ons/chat/quickstart-apps-script).\n- Authentication configured for the Chat app. Performing an action on behalf of a user requires [user authentication](/chat/api/guides/auth/users). Performing an action as the Chat app requires [app authentication with a service account](/chat/api/guides/auth/service-accounts). To check which form of authentication a Chat API method supports, see [Types of required authentication for Google Chat API calls](/chat/api/guides/auth#asynchronous-chat-calls).\n\n| **Note:** This is an advanced service that you must [turn on before use](/apps-script/guides/services/advanced).\n\nReference\n---------\n\nFor more information about this service, see the\n[Chat API reference documentation](/chat/api/reference/rest).\nLike all advanced services in Apps Script, the\nChat service uses the same objects, methods, and parameters as\nthe public API.\n\nSample code\n-----------\n\nThese samples show you how to perform common\n[Google Chat API](/chat/api/guides)\nactions using the advanced service.\n\n### Post a message with user credentials\n\nThe following example demonstrates how to post a message to a\nChat space on behalf of the user.\n\n1. Add the `chat.messages.create` authorization scope to the\n Apps Script project's `appsscript.json` file:\n\n \"oauthScopes\": [\n \"https://www.googleapis.com/auth/chat.messages.create\"\n ]\n\n2. Add a function like this one to the Apps Script project's\n code:\n\n advanced/chat.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/chat.gs) \n\n ```javascript\n /**\n * Posts a new message to the specified space on behalf of the user.\n * @param {string} spaceName The resource name of the space.\n */\n function postMessageWithUserCredentials(spaceName) {\n try {\n const message = {'text': 'Hello world!'};\n Chat.Spaces.Messages.create(message, spaceName);\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed to create message with error %s', err.message);\n }\n }\n ```\n\n### Post a message with app credentials\n\nThe following example demonstrates how to post a message to a\nChat space on behalf of the app. Using the advanced\nChat service with a service account doesn't require you to\nspecify authorization scopes in `appsscript.json`. For details about\nauthentication with service accounts, see\n[Authenticate as a Google Chat app](/chat/api/guides/auth/service-accounts). \nadvanced/chat.gs \n[View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/chat.gs) \n\n```javascript\n/**\n * Posts a new message to the specified space on behalf of the app.\n * @param {string} spaceName The resource name of the space.\n */\nfunction postMessageWithAppCredentials(spaceName) {\n try {\n // See https://developers.google.com/chat/api/guides/auth/service-accounts\n // for details on how to obtain a service account OAuth token.\n const appToken = getToken_();\n const message = {'text': 'Hello world!'};\n Chat.Spaces.Messages.create(\n message,\n spaceName,\n {},\n // Authenticate with the service account token.\n {'Authorization': 'Bearer ' + appToken});\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed to create message with error %s', err.message);\n }\n}\n```\n\n### Get a space\n\nThe following example demonstrates how to get information about a\nChat space.\n\n1. Add the `chat.spaces.readonly` authorization scope to the\n Apps Script project's `appsscript.json` file:\n\n \"oauthScopes\": [\n \"https://www.googleapis.com/auth/chat.spaces.readonly\"\n ]\n\n2. Add a function like this one to the Apps Script project's\n code:\n\n advanced/chat.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/chat.gs) \n\n ```javascript\n /**\n * Gets information about a Chat space.\n * @param {string} spaceName The resource name of the space.\n */\n function getSpace(spaceName) {\n try {\n const space = Chat.Spaces.get(spaceName);\n console.log('Space display name: %s', space.displayName);\n console.log('Space type: %s', space.spaceType);\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed to get space with error %s', err.message);\n }\n }\n ```\n\n### Create a space\n\nThe following example demonstrates how to create a Chat space.\n\n1. Add the `chat.spaces.create` authorization scope to the\n Apps Script project's `appsscript.json` file:\n\n \"oauthScopes\": [\n \"https://www.googleapis.com/auth/chat.spaces.create\"\n ]\n\n2. Add a function like this one to the Apps Script project's\n code:\n\n advanced/chat.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/chat.gs) \n\n ```javascript\n /**\n * Creates a new Chat space.\n */\n function createSpace() {\n try {\n const space = {'displayName': 'New Space', 'spaceType': 'SPACE'};\n Chat.Spaces.create(space);\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed to create space with error %s', err.message);\n }\n }\n ```\n\n### List memberships\n\nThe following example demonstrates how to list all the members of a\nChat space.\n\n1. Add the `chat.memberships.readonly` authorization scope to the\n Apps Script project's `appsscript.json` file:\n\n \"oauthScopes\": [\n \"https://www.googleapis.com/auth/chat.memberships.readonly\"\n ]\n\n2. Add a function like this one to the Apps Script project's\n code:\n\n advanced/chat.gs \n [View on GitHub](https://github.com/googleworkspace/apps-script-samples/blob/main/advanced/chat.gs) \n\n ```javascript\n /**\n * Lists all the members of a Chat space.\n * @param {string} spaceName The resource name of the space.\n */\n function listMemberships(spaceName) {\n let response;\n let pageToken = null;\n try {\n do {\n response = Chat.Spaces.Members.list(spaceName, {\n pageSize: 10,\n pageToken: pageToken\n });\n if (!response.memberships || response.memberships.length === 0) {\n pageToken = response.nextPageToken;\n continue;\n }\n response.memberships.forEach((membership) =\u003e console.log(\n 'Member resource name: %s (type: %s)',\n membership.name,\n membership.member.type));\n pageToken = response.nextPageToken;\n } while (pageToken);\n } catch (err) {\n // TODO (developer) - Handle exception\n console.log('Failed with error %s', err.message);\n }\n }\n ```\n\nTroubleshoot\n------------\n\nIf you encounter `Error 400: invalid_scope` with the error message\n`Some requested scopes cannot be shown`,\nit means you haven't specified any authorization scopes in the\nApps Script project's `appsscript.json` file. In most cases,\nApps Script automatically determines what scopes a script needs,\nbut when you use the Chat advanced service, you must manually add\nthe authorization scopes that your script uses to your\nApps Script project's manifest file. See\n[Setting explicit scopes](/apps-script/concepts/scopes#setting_explicit_scopes).\n\nTo resolve the error, add the appropriate authorization scopes\nto the Apps Script project's `appsscript.json` file as part of\nthe `oauthScopes` array. For example, to call the\n[`spaces.messages.create`](/chat/api/reference/rest/v1/spaces.messages/create)\nmethod, add the following: \n\n \"oauthScopes\": [\n \"https://www.googleapis.com/auth/chat.messages.create\"\n ]\n\nLimits and considerations\n-------------------------\n\nThe Advanced Chat service doesn't support:\n\n- The Chat API method [`media.download`](/chat/api/reference/rest/v1/media/download).\n- Chat API methods available in [Developer Preview](/workspace/preview)\n\nTo download a message attachment or call a developer preview method, use\n[`UrlFetchApp`](/apps-script/reference/url-fetch/url-fetch-app) instead."]]