En esta guía, se explica cómo usar el método
update()
en el recurso Membership de la API de Google Chat para cambiar atributos
sobre una membresía, como cambiar un miembro del espacio a administrador del espacio o
propietario del espacio.
Si eres administrador de Google Workspace, puedes llamar al método update() para actualizar la membresía de cualquier espacio en tu organización de Google Workspace.
El recursoMembership representa si un usuario humano o una app de Google Chat está invitado a un espacio, forma parte de él o no está presente en él.
Requisitos previos
Node.js
- Una cuenta de Google Workspace para empresas o Enterprise con acceso a Google Chat
- Configura tu entorno:
- Crea un proyecto de Google Cloud
- Configura la pantalla de consentimiento de OAuth.
- Habilita y configura la API de Google Chat con un nombre, un ícono y una descripción para tu app de Chat.
- Instala la biblioteca cliente de Cloud de Node.js.
- Crea credenciales de acceso según cómo quieras autenticar tu solicitud a la API de Google Chat:
- Para autenticarte como usuario de Chat, crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
credentials.jsonen tu directorio local. - Para autenticarte como la app de Chat, crea credenciales de cuenta de servicio y guárdalas como un archivo JSON llamado
credentials.json.
- Para autenticarte como usuario de Chat, crea credenciales de ID de cliente de OAuth y guárdalas como un archivo JSON llamado
- Elige un alcance de autorización según si deseas autenticarte como usuario o como la app de Chat.
Actualiza una membresía
Para actualizar la membresía de un espacio, pasa lo siguiente en tu solicitud:
- Especifica un permiso de autorización:
- Con la autenticación de usuarios, especifica el alcance de autorización
chat.memberships. - Con la autenticación de la app, especifica el alcance de autorización
chat.app.memberships. Cuando actualizas una membresía con autenticación de la app, solo puedes actualizar las membresías en espacios creados por apps de Chat. La autenticación de la app requiere la aprobación del administrador una sola vez.
- Con la autenticación de usuarios, especifica el alcance de autorización
- Realiza una llamada al método
UpdateMembership(). - Pasa
membershipcomo una instancia deMembershipcon lo siguiente:- El campo
nameestablecido en la membresía que se actualizará, que incluye un ID de espacio y un ID de miembro. - Son los campos de membresía que se actualizarán y se establecerán en los valores nuevos.
- El campo
- Pasa
updateMaskpara especificar los aspectos de la membresía que se actualizarán. Incluye lo siguiente:role: Es el rol del usuario en un espacio de Chat, que determina las acciones permitidas en el espacio. Para obtener explicaciones detalladas sobre los permisos, consultaMembershipRoleen la documentación de referencia de la API de Chat. Los valores posibles son los siguientes:ROLE_MEMBER: Es un miembro del espacio. En la IU de Chat, este rol se llama Miembro.ROLE_ASSISTANT_MANAGER: Es un administrador de espacio. En la IU de chat, este rol se llama Administrador.ROLE_MANAGER: Es el propietario de un espacio. En la IU de chat, este rol se denomina Propietario.
Cómo cambiar un miembro a propietario (autenticación de usuario)
En el siguiente ejemplo, se llama a la API de Chat con autenticación de usuario para convertir a un miembro normal del espacio en propietario del espacio especificando role como ROLE_MANAGER:
Node.js
Para ejecutar la muestra, reemplaza lo siguiente:
SPACE_NAME: Es el ID delnamedel espacio. Puedes obtener el ID llamando al métodoListSpaces()o desde la URL del espacio.MEMBER_NAME: Es el ID delnamede la membresía. Puedes obtener el ID llamando al métodoListMemberships()o desde el cuerpo de la respuesta que se muestra después de crear una membresía de forma asíncrona con la API de Chat.ROLE_NAME: Es el rol actualizado,ROLE_MANAGER. Puedes establecer este valor en cualquier valor deMembershipRole. Por ejemplo, para convertir a un miembro normal en administrador del espacio, cambiaROLE_NAMEporROLE_ASSISTANT_MANAGER.
La API de Google Chat actualiza la membresía especificada a propietario del espacio y devuelve una instancia de Membership.
Cambiar un propietario a miembro (autenticación del usuario)
En el siguiente ejemplo, se llama a la API de Chat con autenticación del usuario para convertir al propietario de un espacio en un miembro normal del espacio especificando role como ROLE_MEMBER:
Node.js
Para ejecutar la muestra, reemplaza lo siguiente:
SPACE_NAME: Es el ID delnamedel espacio. Puedes obtener el ID llamando al métodoListSpaces()o desde la URL del espacio.MEMBER_NAME: Es el ID delnamede la membresía. Puedes obtener el ID llamando al métodoListMemberships()o desde el cuerpo de la respuesta que se muestra después de crear una membresía de forma asíncrona con la API de Chat.ROLE_NAME: Es el rol actualizado,ROLE_MEMBER.
La API de Google Chat actualiza la membresía especificada a propietario del espacio y devuelve una instancia de Membership.
Cambia un miembro a propietario (autenticación de la app de Chat)
La autenticación de la app requiere la aprobación del administrador una sola vez.
Escribe un script que llame a la API de Chat
En el siguiente ejemplo, se llama a la API de Chat con autenticación de la app para convertir a un miembro normal del espacio en propietario del espacio. Para ello, se especifica role como ROLE_MANAGER en el objeto body que especifica los atributos de membresía actualizados:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_membership_update_to_owner_app.py. Incluye el siguiente código en
chat_membership_update_to_owner_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 owner. ''' # 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', # Replace ROLE with a MembershipRole value. # Obtain the MembershipRole values from the membership of Chat API. body={'role': 'ROLE'} ).execute() # Prints details about the updated membership. print(result) if __name__ == '__main__': main()En el código, reemplaza lo siguiente:
SPACE: Es el nombre de un espacio, que puedes obtener del métodospaces.listen la API de Chat o de la URL de un espacio.MEMBERSHIP: Es el nombre de la membresía, que puedes obtener del métodospaces.members.listen la API de Chat.ROLE: Es el rol actualizado,ROLE_MANAGER. Puedes establecer este valor en cualquier valor deMembershipRole. Por ejemplo, para convertir a un miembro normal en administrador del espacio, cambiaROLEporROLE_ASSISTANT_MANAGER.
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_membership_update_to_owner_app.py
Cambia un propietario a miembro (autenticación de la app de Chat)
La autenticación de la app requiere la aprobación del administrador una sola vez.
Escribe un script que llame a la API de Chat
En el siguiente ejemplo, se llama a la API de Chat con autenticación de la app para convertir al propietario de un espacio en miembro normal. Para ello, se especifica role como ROLE_MEMBER en el objeto body que especifica los atributos de membresía actualizados:
Python
- En tu directorio de trabajo, crea un archivo llamado
chat_membership_update_to_member_app.py. Incluye el siguiente código en
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 owner to change it to a regular member. ''' # 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()En el código, reemplaza lo siguiente:
SPACE: Es el nombre de un espacio, que puedes obtener del métodospaces.listen la API de Chat o de la URL de un espacio.MEMBERSHIP: Es el nombre de la membresía, que puedes obtener del métodospaces.members.listen la API de Chat.
En tu directorio de trabajo, compila y ejecuta la muestra:
python3 chat_membership_update_to_member_app.py
Actualiza las membresías como administrador de Google Workspace
Si eres administrador de Google Workspace, puedes llamar al método update() para actualizar las membresías de cualquier espacio de tu organización de Google Workspace.
Para llamar a este método como administrador de Google Workspace, haz lo siguiente:
- Llama al método con la autenticación del usuario y especifica un alcance de autorización que admita llamar al método con privilegios de administrador.
- En tu solicitud, especifica el parámetro de consulta
useAdminAccesscomotrue.
Para obtener más información y ejemplos, consulta Cómo administrar espacios de Google Chat como administrador de Google Workspace.
Temas relacionados
- Invita o agrega a un usuario o a una app de Google Chat a un espacio.
- Obtén detalles sobre la membresía de un usuario o una app de Chat.
- Enumera los miembros de un espacio.
- Quitar un usuario o una app de Chat de un espacio