Configurar um espaço com os participantes iniciais

Neste guia, explicamos como usar o método setup no recurso Space da API Google Chat para configurar um espaço do Google Chat. A configuração cria um espaço e adiciona usuários específicos a ele.

O recurso Space representa um lugar onde as pessoas e os apps de chat podem enviar mensagens, compartilhar arquivos e colaborar. Existem vários tipos de espaços:

  • As mensagens diretas são conversas entre dois usuários ou um usuário e um app do Chat.
  • Chats em grupo são conversas entre três ou mais usuários e apps do Chat.
  • Os espaços nomeados são lugares persistentes onde as pessoas enviam mensagens, compartilham arquivos e colaboram.

Ao configurar um espaço, considere o seguinte:

  • O usuário (autenticado) que faz a chamada é automaticamente adicionado ao espaço. Dessa forma, não é necessário especificar a associação do usuário na solicitação.
  • Ao criar uma mensagem direta, se existir uma mensagem direta entre dois usuários, ela será retornada. Caso contrário, uma mensagem direta será criada.
  • Durante a criação de um chat em grupo, se nenhuma das associações fornecidas na solicitação for adicionada ao chat em grupo (por exemplo, problema de permissão), um chat em grupo vazio poderá ser criado (incluindo apenas o usuário que fez a chamada).
  • Não é possível configurar espaços com respostas agrupadas nem adicionar pessoas fora do Google Workspace.
  • As associações duplicadas (incluindo o usuário que fez a chamada) fornecidas na solicitação são filtradas em vez de resultar em um erro de solicitação.

Pré-requisitos

Python

  • Python 3.6 ou superior
  • A ferramenta de gerenciamento de pacotes pip
  • As bibliotecas de cliente mais recentes do Google para Python. Para instalar ou atualizar, execute o seguinte na interface de linha de comando:

    pip3 install --upgrade google-api-python-client google-auth-oauthlib
    
  • Um projeto do Google Cloud com a API Google Chat ativada e configurada. Veja as etapas em Criar um app do Google Chat.
  • Autorização configurada para o app do Chat. A configuração de um espaço requer a autenticação do usuário com o escopo de autorização chat.spaces.create ou chat.spaces.

Node.js

  • Node.js e npm
  • As bibliotecas de cliente mais recentes do Google para Node.js. Para instalá-los, execute o seguinte comando na interface de linha de comando:

    npm install @google-cloud/local-auth @googleapis/chat
    
  • Um projeto do Google Cloud com a API Google Chat ativada e configurada. Veja as etapas em Criar um app do Google Chat.
  • Autorização configurada para o app do Chat. A criação de um espaço requer a autenticação do usuário com o escopo de autorização chat.spaces.create ou chat.spaces.

Configurar um espaço

Para configurar um espaço, transmita o seguinte na sua solicitação:

  • Especifique o escopo de autorização chat.spaces.create ou chat.spaces.
  • Chame o método setup no recurso Space.
  • Para adicionar um usuário humano como participante do espaço, especifique users/{user}, em que {user} é o {person_id} do person da API People ou o ID de uma user na API Directory. Por exemplo, se a pessoa resourceName da API People for people/123456789, você poderá adicionar o usuário ao espaço incluindo uma associação com users/123456789 como member.name.
  • Para criar uma mensagem direta entre o usuário que faz a chamada e outro usuário humano, especifique a associação do usuário humano na solicitação.
  • Para criar uma mensagem direta entre o usuário que fez a chamada e o app de chamada, defina Space.singleUserBotDm como true e não especifique nenhuma associação. Só é possível usar esse método para configurar uma mensagem direta com o app de chamada. Para adicioná-lo como membro de um espaço ou como uma mensagem direta entre dois usuários humanos, consulte Criar uma assinatura.

No exemplo a seguir, criamos um espaço nomeado e associações a ele para três usuários humanos, o usuário autenticado e outros dois usuários especificados:

Python

  1. No diretório de trabalho, crie um arquivo chamado chat_space_setup.py.
  2. Inclua o seguinte código em chat_space_setup.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.spaces.create"]
    
    def main():
        '''
        Authenticates with Chat API via user credentials,
        then sets up a Chat space by creating a space and adding members.
        '''
    
        # 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().setup(
    
          # Details about the space to set up.
          body = {
    
            # Attributes of the space to set up, like space type and display name.
            'space': {
    
                # To set up a named space, set spaceType to SPACE.
                'spaceType': 'SPACE',
    
                # The user-visible name of the space
                'displayName': 'API-setup'
            },
    
            # The people and app to add to the space.
            #
            # The authenticated user is automatically added to the space,
            # and doesn't need to be specified in the memberships array.
            'memberships': [
                {
                  'member': {
                    'name':'users/123456789',
                    'type': 'HUMAN'
                  }
                },
                {
                  'member': {
                    'name':'users/987654321',
                    'type': 'HUMAN'
                  }
                }
            ]
          }
    
          ).execute()
    
        # Prints details about the created membership.
        print(result)
    
    if __name__ == '__main__':
        main()
    
  3. No diretório de trabalho, crie e execute a amostra:

    python3 chat_space_setup.py
    

Node.js

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

    const chat = require('@googleapis/chat');
    const {authenticate} = require('@google-cloud/local-auth');
    
    /**
    * Sets up a new Chat space with users.
    * @return {!Promise<!Object>}
    */
    async function setupSpace() {
      const scopes = [
        'https://www.googleapis.com/auth/chat.spaces.create',
      ];
    
      const authClient =
          await authenticate({scopes, keyfilePath: 'client_secrets.json'});
    
      const chatClient = await chat.chat({version: 'v1', auth: authClient});
    
      return await chatClient.spaces.setup({
        requestBody: {
          space: {
            spaceType: 'SPACE',
            displayName: 'API-made',
          },
          memberships: [
            {member: {name: 'users/123456789', type: 'HUMAN'}},
            {member: {name: 'users/987654321', type: 'HUMAN'}},
          ]
        }
      });
    }
    
    setupSpace().then(console.log);
    
  3. No diretório de trabalho, execute o exemplo:

    node setup-space.js
    

É configurado um espaço de chat nomeado com três usuários humanos, incluindo o usuário autenticado.

Para acessar o espaço, use o ID do recurso para criar o URL. Você pode encontrar o ID do recurso do espaço name no corpo da resposta do Google Chat. Por exemplo, se o name do espaço for spaces/1234567, você pode acessá-lo usando o seguinte URL: https://mail.google.com/chat/u/0/#chat/space/1234567.