Create a named space in Google Chat (original) (raw)
This guide explains how to create a named space using thecreate()method on the Space resource of the Google Chat API.
A named space (where thespaceType isSPACE) is a place where people send messages, share files, and collaborate. Named spaces can include Chat apps. Named spaces have space managers who can apply administrative settings, descriptions, and add or remove people and apps.
To create different types of Chat spaces (including direct messages or group messages), use the setUp() method on theSpace resource to create the space and add members at the same time. For details, Set up a space.
After creating a named space, the only member of the space is the authenticated user. To add members to the space, call thecreate() method on the Membership resource for each person or app that you want to add. Or, you can use the setUp() method to create a named space and add members to it at the same time.
Prerequisites
Node.js
- A Business or EnterpriseGoogle Workspace account with access toGoogle 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 namedcredentials.jsonto your local directory.
* To authenticate as the Chat app,create service account credentials and save the credentials as a JSON file namedcredentials.json.
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Python
- A Business or EnterpriseGoogle Workspace account with access toGoogle 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 namedcredentials.jsonto your local directory.
* To authenticate as the Chat app,create service account credentials and save the credentials as a JSON file namedcredentials.json.
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Java
- A Business or EnterpriseGoogle Workspace account with access toGoogle 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 namedcredentials.jsonto your local directory.
* To authenticate as the Chat app,create service account credentials and save the credentials as a JSON file namedcredentials.json.
- Choose an authorization scope based on whether you want to authenticate as a user or the Chat app.
Apps Script
- A Business or EnterpriseGoogle Workspace account with access toGoogle 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, seeAuthenticate 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.
To create a named space withuser authentication, pass the following in your request:
- Specify the
chat.spaces.createorchat.spacesauthorization scope. - Call theCreateSpace()method, passing
spaceas an instance ofSpacewith the following fields:spaceTypeset toSPACE.displayNameset 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-timeadministrator approval.
To invite or add a user to a space withapp authentication, pass the following in your request:
- Specify the
chat.app.spaces.createorchat.app.spacesauthorization scope. - Call thecreate methodon theSpace resource.
- SetspaceTypeto
SPACE. - SetdisplayNameto the user-visible name of the space. In the following example,
displayNameis set toAPI-made. - Specify the customer ID of the Google Workspace domain using the
customerfield. - Optionally, set other space attributes, likespaceDetails(a user-visible description and set of guidelines for the space).
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)
# 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:
CUSTOMER: the customer ID of the domain of the space in the formatcustomer/{customer}where{customer}is theIDfrom theAdmin 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 spacename in the Google Chat response body. For example, if your space'sname is spaces/1234567, you can navigate to the space using the following URL: https://mail.google.com/chat/u/0/#chat/space/1234567.
Limitations and considerations
- When you create a space usingapp authentication, the authenticating Chat app is added as a member of the space, but unlike user authentication, not as a space manager. By default, all space members can remove the Chat app. To allow only space managers to remove the Chat app, setpermissionSettings.manageAppsto
managersAllowed. - Add people and apps to the space bycreating members.
- Post a message in the space bycreating 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.