高度なチャット サービス
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
高度なチャット サービスを使用すると、Apps Script で Google Chat API を使用できます。この API を使用すると、スクリプトで Chat スペースの検索、作成、変更、スペースへのメンバーの追加または削除、テキスト、カード、添付ファイル、リアクションを含むメッセージの読み取りまたは投稿を行えます。
前提条件
リファレンス
このサービスの詳細については、Chat API リファレンス ドキュメントをご覧ください。Apps Script のすべての高度なサービスと同様に、Chat サービスでは、公開 API と同じオブジェクト、メソッド、パラメータを使用します。
サンプルコード
これらのサンプルは、高度なサービスを使用して一般的な Google Chat API アクションを実行する方法を示しています。
ユーザー認証情報を使用してメッセージを投稿する
次の例は、ユーザーに代わって Chat スペースにメッセージを投稿する方法を示しています。
Apps Script プロジェクトの appsscript.json
ファイルに chat.messages.create
認証スコープを追加します。
"oauthScopes": [
"https://www.googleapis.com/auth/chat.messages.create"
]
次のような関数を Apps Script プロジェクトのコードに追加します。
アプリの認証情報を含むメッセージを投稿する
次の例は、アプリに代わって Chat スペースにメッセージを投稿する方法を示しています。サービス アカウントで高度な Chat サービスを使用する場合、appsscript.json
で認可スコープを指定する必要はありません。サービス アカウントを使用した認証の詳細については、Google Chat 用アプリとして認証するをご覧ください。
スペースを取得する
次の例は、Chat スペースに関する情報を取得する方法を示しています。
Apps Script プロジェクトの appsscript.json
ファイルに chat.spaces.readonly
認証スコープを追加します。
"oauthScopes": [
"https://www.googleapis.com/auth/chat.spaces.readonly"
]
次のような関数を Apps Script プロジェクトのコードに追加します。
スペースを作成
次の例は、Chat スペースを作成する方法を示しています。
Apps Script プロジェクトの appsscript.json
ファイルに chat.spaces.create
認証スコープを追加します。
"oauthScopes": [
"https://www.googleapis.com/auth/chat.spaces.create"
]
次のような関数を Apps Script プロジェクトのコードに追加します。
メンバーシップを一覧表示する
次の例は、Chat スペースのすべてのメンバーを一覧表示する方法を示しています。
Apps Script プロジェクトの appsscript.json
ファイルに chat.memberships.readonly
認証スコープを追加します。
"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"
]
制限事項と考慮事項
高度なチャット サービスでは、次の機能はサポートされていません。
メッセージの添付ファイルをダウンロードしたり、デベロッパー プレビュー メソッドを呼び出したりするには、代わりに UrlFetchApp
を使用します。
特に記載のない限り、このページのコンテンツはクリエイティブ・コモンズの表示 4.0 ライセンスにより使用許諾されます。コードサンプルは Apache 2.0 ライセンスにより使用許諾されます。詳しくは、Google Developers サイトのポリシーをご覧ください。Java は Oracle および関連会社の登録商標です。
最終更新日 2025-08-31 UTC。
[null,null,["最終更新日 2025-08-31 UTC。"],[[["\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."]]