This guide explains how to use the update()
method on the Membership
resource of the Google Chat API to change attributes
about a membership, like changing a space member to a space manager, or changing
a space manager to a space member.
If you're a Google Workspace administrator, you can call the update()
method
to update any space's membership in your Google Workspace organization.
The Membership
resource
represents whether a human user or Google Chat app is invited to,
part of, or absent from a space.
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
credentials.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.
Update a membership
To update a space membership, pass the following in your request:
- Specify an authorization scope:
- With user authentication
,
specify the
chat.memberships
authorization scope. - With app authentication
,
specify the
chat.app.memberships
authorization scope. When updating a membership with app authentication, you can only update memberships in spaces created by Chat apps. App authentication requires one-time administrator approval .
- With user authentication
,
specify the
- Call the
UpdateMembership()
method. - Pass
membership
as an instance ofMembership
with the following:- The
name
field set to the membership to update, which includes a space ID and a member ID. - The membership fields to update set to the new values.
- The
- Pass
updateMask
to specify the aspects of the membership to update, it includes the following:-
role
: User's role within a Chat space, which determines their permitted actions in the space. Possible values are:-
ROLE_MEMBER
: A member of the space. The user has basic permissions, like sending messages to the space. In 1:1 and unnamed group conversations, everyone has this role. -
ROLE_MANAGER
: A space manager. The user has all basic permissions plus administrative permissions that let them manage the space, like adding or removing members. Only supported in spaces wherespaceType
isSPACE
(named spaces).
-
-
Make a regular space member a space manager as a user
The following example calls the Chat API using user authentication
to make a regular space member a space manager by specifying role
as ROLE_MANAGER
:
Node.js
To run the sample, replace the following:
-
SPACE_NAME
: the ID from the space'sname
. You can obtain the ID by calling theListSpaces()
method or from the space's URL. -
MEMBER_NAME
: the ID from the membership'sname
. You can obtain the ID by calling theListMemberships()
method, or from the response body returned after creating a membership asynchronously with the Chat API. -
ROLE_NAME
: the updated role,ROLE_MANAGER
.
The Google Chat API updates the specified membership to a space manager and returns
an instance of Membership
.
Make a space manager a regular member as a user
The following example calls the Chat API using user authentication
to make a space manager a regular space member by specifying role
as ROLE_MEMBER
:
Node.js
To run the sample, replace the following:
-
SPACE_NAME
: the ID from the space'sname
. You can obtain the ID by calling theListSpaces()
method or from the space's URL. -
MEMBER_NAME
: the ID from the membership'sname
. You can obtain the ID by calling theListMemberships()
method, or from the response body returned after creating a membership asynchronously with the Chat API. -
ROLE_NAME
: the updated role,ROLE_MEMBER
.
The Google Chat API updates the specified membership to a space manager and returns
an instance of Membership
.
Make a regular space member a space manager as a Chat app
App authentication requires one-time administrator approval .
Write a script that calls the Chat API
The following example calls the Chat API using app authentication
to make a regular space member a space manager by specifying role
as ROLE_MANAGER
in the body
that specifies updated membership attributes:
Python
- In your working directory, create a file named
chat_membership_update_to_manager_app.py
. -
Include the following code in
chat_membership_update_to_manager_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.memberships" ] def main (): ''' Authenticates with Chat API using app authentication, then updates a specified space member to change it from a regular member to a space manager. ''' # 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 () . members () . patch ( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name = 'spaces/ SPACE /members/ MEMBERSHIP ' , updateMask = 'role' , body = { 'role' : 'ROLE_MANAGER' } ) . execute () # Prints details about the updated membership. print ( result ) if __name__ == '__main__' : main ()
-
In the code, replace the following:
-
SPACE
: a space name, which you can obtain from thespaces.list
method in the Chat API, or from a space's URL. -
MEMBERSHIP
: a membership name, which you can obtain from thespaces.members.list
method in the Chat API.
-
-
In your working directory, build and run the sample:
python3 chat_membership_update_to_manager_app.py
Make a space manager a regular member as a Chat app
App authentication requires one-time administrator approval .
Write a script that calls the Chat API
The following example calls the Chat API using app authentication
to make a space manager a regular space member by specifying role
as ROLE_MEMBER
in the body
that specifies updated membership attributes:
Python
- In your working directory, create a file named
chat_membership_update_to_member_app.py
. -
Include the following code in
chat_membership_update_to_member_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.memberships" ] def main (): ''' Authenticates with Chat API via user credentials, then updates a specified space member to change it from a regular member to a space manager. ''' # 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 () . members () . patch ( # The membership to update, and the updated role. # # Replace SPACE with a space name. # Obtain the space name from the spaces resource of Chat API, # or from a space's URL. # # Replace MEMBERSHIP with a membership name. # Obtain the membership name from the membership of Chat API. name = 'spaces/ SPACE /members/ MEMBERSHIP ' , updateMask = 'role' , body = { 'role' : 'ROLE_MEMBER' } ) . execute () # Prints details about the updated membership. print ( result ) if __name__ == '__main__' : main ()
-
In the code, replace the following:
-
SPACE
: a space name, which you can obtain from thespaces.list
method in the Chat API, or from a space's URL. -
MEMBERSHIP
: a membership name, which you can obtain from thespaces.members.list
method in the Chat API.
-
-
In your working directory, build and run the sample:
python3 chat_membership_update_to_member_app.py
Update memberships as a Google Workspace administrator
If you're a Google Workspace administrator, you can call the update()
method to update memberships for any space in your Google Workspace
organization.
To call this method as a Google Workspace administrator, do the following:
- Call the method using user authentication, and specify an authorization scope that supports calling the method using administrator privileges .
- In your request, specify the query parameter
useAdminAccess
totrue
.
For more information and examples, see Manage Google Chat spaces as a Google Workspace administrator .