Convidar ou adicionar um usuário, um Grupo do Google ou um app do Google Chat a um espaço

Este guia explica como usar o método create no recurso membership da API Google Chat para convidar ou adicionar um usuário, um Grupo do Google ou app do Chat para um espaço, também conhecido como criação de assinatura. Ao criar uma assinatura, se o membro especificado tiver Se a política de aceitação automática for desativada, eles serão convidados e precisarão aceitar o espaço antes de entrar. Caso contrário, a criação da assinatura adicionará o membro diretamente ao espaço especificado.

O Recurso Membership representa se um usuário humano ou um app do Google Chat foi convidado; ausente ou faz parte de um espaço.

Pré-requisitos

Python

Node.js

Convidar ou adicionar um usuário a um espaço

Para convidar ou adicionar um usuário a um espaço, transmita o seguinte no seu solicitação:

  • Especifique o escopo de autorização chat.memberships.
  • Chame o método Método create no(a) Recurso membership.
  • Defina parent como o nome do recurso do espaço em que a associação será criada.
  • Defina member como users/{user}, em que {user} é a pessoa que você quer criar associação e for:
    • O ID do pessoa na API People. Por exemplo, se a API People, pessoa resourceName é people/123456789, depois defina membership.member.name para users/123456789.
    • O ID do usuário na API Directory.
    • O endereço de e-mail do usuário. Por exemplo, users/222larabrown@gmail.com ou users/larabrown@cymbalgroup.com. Se o usuário utiliza uma Conta do Google ou pertencer a outra organização do Google Workspace, use o endereço de e-mail.

O exemplo abaixo adiciona um usuário a um espaço:

Python

  1. Em seu diretório de trabalho, crie um arquivo chamado chat_membership_user_create.py:
  2. Inclua o seguinte código em chat_membership_user_create.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a user to a Chat space by creating a membership.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # 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().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which user the membership is for.
            body = {
              'member': {
                'name':'users/USER',
                'type': 'HUMAN'
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE: um nome de espaço, que que você pode conseguir na Método spaces.list na API Chat ou pelo URL de um espaço.

    • USER: um ID do usuário.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_membership_user_create.py

Node.js

  1. No diretório de trabalho, crie um arquivo chamado add-user-to-space.js.
  2. Inclua o seguinte código em add-user-to-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the user to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/USER', type: 'HUMAN'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. No código, substitua o seguinte:

    • SPACE: um nome de espaço, que pode ser encontrado no Método spaces.list na API Chat ou pelo URL de um espaço.

    • USER: um ID do usuário.

  4. No diretório de trabalho, execute o exemplo:

    node add-user-to-space.js

A API Chat retorna uma instância do membership que detalha a associação de usuário que foi criada.

Convidar ou adicionar um grupo do Google a um espaço

Para convidar ou adicionar um grupo do Google a um espaço, transmita o seguinte no seu solicitação:

  • Especifique o escopo de autorização chat.memberships.
  • Chame o método Método create no(a) Recurso membership.
  • Defina parent como o nome do recurso do espaço em que a associação será criada.
  • Defina groupMember como groups/{group}, em que {group} é o ID do grupo que você para os quais você quer criar a assinatura. O ID do grupo pode ser recuperado com a função API Cloud Identity. Por exemplo, se a API Cloud Identity retorna um grupo com o nome groups/123456789 e, em seguida, define membership.groupMember.name para groups/123456789.

Não é possível adicionar os Grupos do Google a um grupo de chat ou a uma mensagem direta, apenas a um um espaço nomeado. O exemplo abaixo adiciona um grupo a um espaço nomeado:

Python

  1. Em seu diretório de trabalho, crie um arquivo chamado chat_membership_group_create.py:
  2. Inclua o seguinte código em chat_membership_group_create.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.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.memberships"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds a group to a Chat space by creating a membership.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # 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().create(
    
            # The named space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Specify which group the membership is for.
            body = {
              'groupMember': {
                'name':'groups/GROUP',
              }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua o seguinte:

    • SPACE: um nome de espaço, que que você pode conseguir na Método spaces.list na API Chat ou pelo URL de um espaço.

    • GROUP: um ID de grupo.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_membership_group_create.py

Node.js

  1. No diretório de trabalho, crie um arquivo chamado add-group-to-space.js.
  2. Inclua o seguinte código em add-group-to-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the group to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addUserToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {groupMember: {name: 'groups/GROUP'}}
      });
    }
    
    addUserToSpace().then(console.log);
    
  3. No código, substitua o seguinte:

    • SPACE: um nome de espaço, que pode ser encontrado no Método spaces.list na API Chat ou pelo URL de um espaço.

    • GROUP: um ID de grupo.

  4. No diretório de trabalho, execute o exemplo:

    node add-group-to-space.js

A API Chat retorna uma instância do membership que detalha a associação ao grupo que foi criada.

Adicionar um app do Chat a um espaço

Um app do Chat não pode adicionar outro app como participante espaço. Para adicionar um app do Chat a um espaço ou uma mensagem direta entre dois usuários humanos, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.memberships.app.
  • Chame o método Método create no recurso membership.
  • Defina parent como o nome do recurso do espaço em que a associação será criada.
  • Defina member como users/app. um alias que represente o aplicativo que está chamando o API Chat.

O exemplo abaixo adiciona um app do Chat a um espaço:

Python

  1. Em seu diretório de trabalho, crie um arquivo chamado chat_membership_app_create.py:
  2. Inclua o seguinte código em chat_membership_app_create.py:

    from google_auth_oauthlib.flow import InstalledAppFlow
    from googleapiclient.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.memberships.app"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then adds the Chat app to a Chat space.
        '''
    
        # Authenticate with Google Workspace
        # and get user authorization.
        flow = InstalledAppFlow.from_client_secrets_file(
                    'client_secrets.json', SCOPES)
        creds = flow.run_local_server()
    
        # 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().create(
    
            # The space in which to create a membership.
            parent = 'spaces/SPACE',
    
            # Set the Chat app as the entity that gets added to the space.
            # 'app' is an alias for the Chat app calling the API.
            body = {
                'member': {
                  'name':'users/app',
                  'type': 'BOT'
                }
            }
    
        ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No código, substitua SPACE por um nome de espaço, que que você pode conseguir na Método spaces.list na API Chat ou pelo URL de um espaço.

  4. No diretório de trabalho, crie e execute o exemplo:

    python3 chat_membership_app_create.py

Node.js

  1. No diretório de trabalho, crie um arquivo chamado add-app-to-space.js.
  2. Inclua o seguinte código em add-app-to-space.js:

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Adds the app to the Chat space.
    * @return {!Promise<!Object>}
    */
    async function addAppToSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.memberships.app',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.members.create({
        parent: 'spaces/SPACE',
        requestBody: {member: {name: 'users/app', type: 'BOT'}}
      });
    }
    
    addAppToSpace().then(console.log);
    
  3. No código, substitua SPACE por um nome de espaço, que que você pode conseguir na Método spaces.list na API Chat ou pelo URL de um espaço.

  4. No diretório de trabalho, execute o exemplo:

    node add-app-to-space.js

A API Chat retorna uma instância do membership que detalha a assinatura do app que foi criada.