Actualiza la membresía de un usuario en un espacio de Google Chat

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 de una membresía, como cambiar un miembro de un espacio a administrador o viceversa.

Si eres administrador de Google Workspace, puedes llamar al método update() para actualizar la membresía de cualquier espacio de tu organización de Google Workspace.

El recurso Membership representa si se invita a un usuario humano o a una app de Google Chat a un espacio, si forma parte de él o si está ausente.

Requisitos previos

Node.js

Cómo actualizar una membresía

Para actualizar la membresía de un espacio, pasa lo siguiente en tu solicitud:

  • Especifica un permiso de autorización:
  • Realiza una llamada al método UpdateMembership().
  • Pasa membership como instancia de Membership con lo siguiente:
    • El campo name establecido en la membresía que se actualizará, que incluye un ID de espacio y un ID de miembro
    • Los campos de membresía que se actualizarán se establecen con los valores nuevos.
  • Pasa updateMask para especificar los aspectos de la membresía que se actualizarán. Esto incluye lo siguiente:
    • role: Es el rol del usuario dentro de un espacio de Chat, que determina las acciones permitidas en el espacio. Los valores posibles son los siguientes:
      • ROLE_MEMBER: Un miembro del espacio. El usuario tiene permisos básicos, como enviar mensajes al espacio. En conversaciones individuales y en grupo sin nombre, todos tienen este rol.
      • ROLE_MANAGER: Es un administrador de espacio. El usuario tiene todos los permisos básicos, además de permisos administrativos que le permiten administrar el espacio, como agregar o quitar miembros. Solo se admite en espacios en los que spaceType es SPACE (espacios con nombre).

Cómo convertir a un miembro normal del espacio en administrador del espacio como 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 administrador del espacio especificando role como ROLE_MANAGER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.memberships'];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Para ejecutar la muestra, reemplaza lo siguiente:

  • SPACE_NAME: Es el ID del name del espacio. Para obtener el ID, llama al método ListSpaces() o desde la URL del espacio.
  • MEMBER_NAME: Es el ID del objeto name de la membresía. Para obtener el ID, llama al método ListMemberships() 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: El rol actualizado, ROLE_MANAGER.

La API de Google Chat actualiza la membresía especificada a un administrador de espacios y muestra una instancia de Membership.

Cómo convertir a un administrador del espacio en miembro habitual como usuario

En el siguiente ejemplo, se llama a la API de Chat mediante la autenticación de usuario para convertir un administrador del espacio en un miembro normal del espacio especificando role como ROLE_MEMBER:

Node.js

chat/client-libraries/cloud/update-membership-user-cred.js
import {createClientWithUserCredentials} from './authentication-utils.js';

const USER_AUTH_OAUTH_SCOPES = ['https://www.googleapis.com/auth/chat.memberships'];

// This sample shows how to update a membership with user credential
async function main() {
  // Create a client
  const chatClient = await createClientWithUserCredentials(USER_AUTH_OAUTH_SCOPES);

  // Initialize request argument(s)
  const request = {
    membership: {
      // Replace SPACE_NAME and MEMBER_NAME here
      name: 'spaces/SPACE_NAME/members/MEMBER_NAME',
      // Replace ROLE_NAME here with ROLE_MEMBER or ROLE_MANAGER
      role: 'ROLE_NAME'
    },
    updateMask: {
      // The field paths to update.
      paths: ['role']
    }
  };

  // Make the request
  const response = await chatClient.updateMembership(request);

  // Handle the response
  console.log(response);
}

main().catch(console.error);

Para ejecutar la muestra, reemplaza lo siguiente:

  • SPACE_NAME: Es el ID del name del espacio. Para obtener el ID, llama al método ListSpaces() o desde la URL del espacio.
  • MEMBER_NAME: Es el ID del objeto name de la membresía. Para obtener el ID, llama al método ListMemberships() 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: El rol actualizado, ROLE_MEMBER.

La API de Google Chat actualiza la membresía especificada a un administrador de espacios y muestra una instancia de Membership.

Cómo convertir a un miembro normal del espacio en administrador del espacio como app de Chat

La autenticación de apps requiere la aprobación del administrador por única vez.

Crea una clave de API

Para llamar a un método de la API de la Versión preliminar para desarrolladores, debes usar una versión no pública de la versión preliminar para desarrolladores del documento de descubrimiento de la API. Para autenticar la solicitud, debes pasar una clave de API.

Para crear la clave de API, abre el proyecto de Google Cloud de tu app y haz lo siguiente:

  1. En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > Clave de API.
  3. Se mostrará tu nueva clave de API.
    • Haz clic en Copiar para copiar tu clave de API y usarla en el código de tu app. También puedes encontrar la clave de API en la sección "Claves de API" de las credenciales de tu proyecto.
    • Haz clic en Restringir clave para actualizar la configuración avanzada y limitar el uso de tu clave de API. Para obtener más detalles, consulta Aplica restricciones de claves de API.

Escribe una secuencia de comandos que llame a la API de Chat

En el siguiente ejemplo, se llama a la API de Chat con autenticación de apps para convertir a un miembro normal del espacio en administrador del espacio especificando role como ROLE_MANAGER en el body que especifica los atributos de membresía actualizados:

Python

  1. En tu directorio de trabajo, crea un archivo llamado chat_membership_update_to_manager_app.py.
  2. Incluye el siguiente código en 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, 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().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()
    
  3. En el código, reemplaza lo siguiente:

    • API_KEY: Es la clave de API que creaste para compilar el extremo de servicio de la API de Chat.

    • SPACE: Es el nombre del espacio, que puedes obtener del método spaces.list en la API de Chat o desde la URL de un espacio.

    • MEMBERSHIP: Es un nombre de membresía, que puedes obtener del método spaces.members.list en la API de Chat.

  4. En tu directorio de trabajo, compila y ejecuta la muestra:

    python3 chat_membership_update_to_manager_app.py

Cómo convertir a un administrador de un espacio en un miembro normal como app de Chat

La autenticación de apps requiere la aprobación del administrador por única vez.

Crea una clave de API

Para llamar a un método de la API de la Versión preliminar para desarrolladores, debes usar una versión no pública de la versión preliminar para desarrolladores del documento de descubrimiento de la API. Para autenticar la solicitud, debes pasar una clave de API.

Para crear la clave de API, abre el proyecto de Google Cloud de tu app y haz lo siguiente:

  1. En la consola de Google Cloud, ve a Menú > APIs y servicios > Credenciales.

    Ir a Credenciales

  2. Haz clic en Crear credenciales > Clave de API.
  3. Se mostrará tu nueva clave de API.
    • Haz clic en Copiar para copiar tu clave de API y usarla en el código de tu app. También puedes encontrar la clave de API en la sección "Claves de API" de las credenciales de tu proyecto.
    • Haz clic en Restringir clave para actualizar la configuración avanzada y limitar el uso de tu clave de API. Para obtener más detalles, consulta Aplica restricciones de claves de API.

Escribe una secuencia de comandos que llame a la API de Chat

En el siguiente ejemplo, se llama a la API de Chat con autenticación de apps para convertir a un administrador de un espacio en un miembro normal. Para ello, se especifica role como ROLE_MEMBER en el body que especifica los atributos de membresía actualizados:

Python

  1. En tu directorio de trabajo, crea un archivo llamado chat_membership_update_to_member_app.py.
  2. 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 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, 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().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()
    
  3. En el código, reemplaza lo siguiente:

    • API_KEY: Es la clave de API que creaste para compilar el extremo de servicio de la API de Chat.

    • SPACE: Es un nombre de espacio que puedes obtener del método spaces.list en la API de Chat o de la URL de un espacio.

    • MEMBERSHIP: Un nombre de membresía, que puedes obtener del método spaces.members.list en la API de Chat.

  4. 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:

Para obtener más información y ejemplos, consulta Cómo administrar espacios de Google Chat como administrador de Google Workspace.