This guide explains how to use the
create()
method on the Space
resource of the Google Chat API to create a named space.
The
Space
resource
represents a place where people and Chat apps can send messages,
share files, and collaborate. There are several types of spaces:
- Direct messages (DMs) are conversations between two users or a user and a Chat app.
- Group chats are conversations between three or more users and Chat apps.
- Named spaces are persistent places where people send messages, share files, and collaborate.
A named space is a place where people send messages, share files, and collaborate. Named spaces can include Chat apps. Named spaces include extra features that unnamed group conversations and direct messages don't have, such as space managers who can apply administrative settings, descriptions, and add or remove people and apps. After creating a named space, the only member of the space is the authenticated user. The space doesn't include other people or apps; not even the Chat app that creates it. To add members to a space, see Create a membership.
To create a named space with multiple members—an unnamed group chat between three or more people, or a direct message conversation between two people, or a person and the Chat app calling the Chat API—set up a space instead.
Prerequisites
Node.js
- A Business or Enterprise Google Workspace account with access to Google Chat.
- Set up your environment:
- Create a Google Cloud project.
- Configure the OAuth consent screen.
- Enable and configure the Google Chat API with a name, icon, and description for your Chat app.
- Install the Node.js Cloud Client Library.
- Create access credentials based on how you want to authenticate in your Google Chat API
request:
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
client_secrets.json
to your local directory. - To authenticate as the Chat app,
create service account
credentials and save the credentials as a JSON file named
credentials.json
.
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Python
- A Business or Enterprise Google Workspace account with access to Google Chat.
- Set up your environment:
- Create a Google Cloud project.
- Configure the OAuth consent screen.
- Enable and configure the Google Chat API with a name, icon, and description for your Chat app.
- Install the Python Cloud Client Library.
- Create access credentials based on how you want to authenticate in your Google Chat API
request:
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
client_secrets.json
to your local directory. - To authenticate as the Chat app,
create service account
credentials and save the credentials as a JSON file named
credentials.json
.
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Java
- A Business or Enterprise Google Workspace account with access to Google Chat.
- Set up your environment:
- Create a Google Cloud project.
- Configure the OAuth consent screen.
- Enable and configure the Google Chat API with a name, icon, and description for your Chat app.
- Install the Java Cloud Client Library.
- Create access credentials based on how you want to authenticate in your Google Chat API
request:
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
client_secrets.json
to your local directory. - To authenticate as the Chat app,
create service account
credentials and save the credentials as a JSON file named
credentials.json
.
- To authenticate as a Chat user,
create OAuth client ID
credentials and save the credentials as a JSON file named
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Apps Script
- A Business or Enterprise Google Workspace account with access to Google Chat.
- Set up your environment:
- Create a Google Cloud project.
- Configure the OAuth consent screen.
- Enable and configure the Google Chat API with a name, icon, and description for your Chat app.
- Create a standalone Apps Script project, and turn on the Advanced Chat Service.
- In this guide, you must use either user or app authentication. To authenticate as the Chat app, create service account credentials. For steps, see Authenticate and authorize as a Google Chat app.
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Create a named space as a user
To create a named space with user authentication, pass the following in your request:
- Specify the
chat.spaces.create
orchat.spaces
authorization scope. - Call the
CreateSpace()
method, passingspace
as an instance ofSpace
with the following fields:spaceType
set toSPACE
.displayName
set to the user-visible name of the space.- Optionally, set other attributes, like the following:
spaceDetails
- a user-visible description and set of guidelines for the space.predefinedPermissionSettings
- predefined permissions for the space. For example, you can configure it so that all members or only space managers can post messages.
Here's how to create a named space:
Node.js
Python
Java
Apps Script
Create a named space as a Chat app
App authentication requires one-time administrator approval.
To invite or add a user to a space with app authentication, pass the following in your request:
- Specify the
chat.app.spaces.create
orchat.app.spaces
authorization scope. - Call the
create
method on theSpace
resource. - Set
spaceType
toSPACE
. - Set
displayName
to the user-visible name of the space. In the following example,displayName
is set toAPI-made
. - Specify the customer ID of the Google Workspace domain using the
customer
field. - Optionally, set other space attributes, like
spaceDetails
(a user-visible description and set of guidelines for the space).
Create an API key
To call a Developer Preview API method, you must use a non-public developer preview version of the API discovery document. To authenticate the request, you must pass an API key.
To create the API Key, open your app's Google Cloud project and do the following:
- In the Google Cloud console, go to Menu > APIs & Services > Credentials.
- Click Create credentials > API key.
- Your new API key is displayed.
- Click Copy to copy your API key for use in your app's code. The API key can also be found in the "API keys" section of your project's credentials.
- Click Restrict key to update advanced settings and limit use of your API key. For more details, see Applying API key restrictions.
Write a script that calls Chat API
Here's how to create a named space:
Python
- In your working directory, create a file named
chat_space_create_named_app.py
. Include the following code in
chat_space_create_named_app.py
:from google.oauth2 import service_account from apiclient.discovery import build # Define your app's authorization scopes. # When modifying these scopes, delete the file token.json, if it exists. SCOPES = ["https://www.googleapis.com/auth/chat.app.spaces.create"] def main(): ''' Authenticates with Chat API using app authentication, then creates a Chat space. ''' # Specify service account details. creds = ( service_account.Credentials.from_service_account_file('credentials.json') .with_scopes(SCOPES) ) # Build a service endpoint for Chat API. chat = build('chat', 'v1', credentials=creds, discoveryServiceUrl='https://chat.googleapis.com/$discovery/rest?version=v1&labels=DEVELOPER_PREVIEW&key=API_KEY') # Use the service endpoint to call Chat API. result = chat.spaces().create( # Details about the space to create. body = { # To create a named space, set spaceType to SPACE. 'spaceType': 'SPACE', # The user-visible name of the space. 'displayName': 'API-made', # The customer ID of the Workspace domain. 'customer': 'CUSTOMER' } ).execute() # Prints details about the created space. print(result) if __name__ == '__main__': main()
In the code, replace the following:
API_KEY
: the API key you created to build the service endpoint for Chat API.CUSTOMER
: the customer ID of the domain of the space in the formatcustomer/{customer}
where{customer}
is theID
from the Admin SDK customer resource. To create a space in the same Google Workspace organization as the Chat app, usecustomers/my_customer
.
In your working directory, build and run the sample:
python3 chat_space_create_named_app.py
Open the space in Google Chat
To navigate to the space, use the space's resource ID
to build the space's URL. You can find the resource ID from the space
name
in the Google Chat response body. For example, if your space's
name
is spaces/1234567
, you can navigate to the space using the following
URL: https://mail.google.com/chat/u/0/#chat/space/1234567
.
Related topics
- Add people and apps to the space by creating members.
- Post a message in the space by creating a message.
- Get details about a space.
- List spaces.
- Update a space.
- Delete a space.
- Set up a space.
- Find a direct message space.
- Make a space discoverable to specific users.