Google Chat

Versão da integração: 2.0

Autorizações do produto

Criar uma conta de serviço

  1. Na Google Cloud consola, selecione um projeto Google Cloud existente ou crie um novo. Tenha em atenção que o Google Cloud projeto selecionado deve fazer parte da organização em Google Cloud.
  2. Clique no ☰ Menu e selecione o item do menu APIs e serviços > Credenciais.
  3. Na parte superior da página, clique em + CRIAR CREDENCIAIS > Conta de serviço.
  4. Introduza um nome da conta de serviço para apresentar na consola.
  5. Opcional: introduza uma descrição da conta de serviço.
  6. Clique em CRIAR, seguido de CONTINUAR e CONCLUÍDO para terminar de criar a conta de serviço.

Crie credenciais da conta de serviço

  1. Depois de criar a conta de serviço, é redirecionado para a lista de credenciais que pode usar para o Google Cloud projeto. Na secção Contas de serviço, clique na conta de serviço que acabou de criar. Este nome é: service-account-name@project-name-XXXXXX.iam.gserviceaccount.com.
  2. Clique em ADICIONAR CHAVE > Criar nova chave.
  3. Mantenha o JSON selecionado e clique em CRIAR.

Isto inicia a transferência do ficheiro de credenciais de que precisa para aceder à API como esta conta de serviço.

Configure um novo projeto do Apps Script

  1. Aceda ao Google Apps Script.
  2. Criar um novo projeto do Apps Script.
  3. Para executar a funcionalidade de integração, adicione o seguinte código ao projeto recém-criado:

    var SCOPE = 'https://www.googleapis.com/auth/chat.bot';
    // The values below are copied from the JSON file downloaded upon
    // service account creation.
    // For SERVICE_ACCOUNT_PRIVATE_KEY, remember to include the BEGIN and END lines of the private key
    var SERVICE_ACCOUNT_PRIVATE_KEY = '...';
    var SERVICE_ACCOUNT_EMAIL = 'service-account@project-id.iam.gserviceaccount.com';
    
    // Posts a message into the given space ID via the API, using
    // service account authentication.
    function postMessage(spaceId, message) {
      var service = OAuth2.createService('chat')
          .setTokenUrl('https://accounts.google.com/o/oauth2/token')
          .setPrivateKey(SERVICE_ACCOUNT_PRIVATE_KEY)
          .setClientId(SERVICE_ACCOUNT_EMAIL)
          .setPropertyStore(PropertiesService.getUserProperties())
          .setScope(SCOPE);
      if (!service.hasAccess()) {
        Logger.log('Authentication error: %s', service.getLastError());
        return;
      }
      var url = 'https://chat.googleapis.com/v1/' + spaceId + '/messages';
      UrlFetchApp.fetch(url, {
        method: 'post',
        headers: { 'Authorization': 'Bearer ' + service.getAccessToken() },
        contentType: 'application/json',
        payload: JSON.stringify(message),
      });
    }
    
  4. Abra o ficheiro de credenciais da conta de serviço transferido da Google Cloud consola.

  5. Copie o valor private_key (o que começa com -----BEGIN PRIVATE KEY-----) e cole-o em SERVICE_ACCOUNT_PRIVATE_KEY no projeto do Apps Script.

  6. Copie o valor client_email do ficheiro de credenciais e cole-o em SERVICE_ACCOUNT_EMAIL no projeto do Apps Script.

  7. Associe o projeto do Apps Script ao Google Cloud projeto que criou.

  8. Regresse à Google Cloud consola e selecione o item de menu ☰ > IAM e administração > Definições.

  9. Copie o número do projeto definido nesta página.

  10. No seu projeto do Apps Script, selecione o item de menu Definições do projeto > Google Cloud projeto e cole o número do projeto na caixa de diálogo Introduza o número do projeto aqui.

  11. Clique em Definir projeto.

Ative a API Google Chat

  1. Aceda a ☰ > APIs e serviços e selecione Biblioteca.
  2. Pesquise API Google Chat e clique no único resultado.
  3. Clique em ATIVAR.

Isto ativa a API para o seu projeto.

Implemente um bot

  1. Na IU do Apps Script, aceda a Implementar > Nova implementação.
  2. Selecione Adicionar para o novo tipo de implementação.
  3. Introduza um nome e uma descrição da implementação e clique em Guardar.
  4. Quando a poupança estiver concluída, clique em Obter ID junto à implementação que acabou de criar e copie o valor do ID de implementação.

Configure o bot do Google Chat:

  1. Na Google Cloud consola, aceda a ☰ > APIs e serviços > Painel de controlo.
  2. Na lista de APIs ativadas, selecione API Google Chat.
  3. Clique em Gerir para abrir a página da API Google Chat.
  4. Na página aberta, selecione o separador Configuração e configure a configuração do bot:

    • No campo Nome da app, introduza Google Security Operations Chat App.
    • No campo URL do avatar, introduza https://developers.google.com/chat/images/chat-product-icon.png.
    • No campo Descrição, introduza a app Google SecOps Chat que pode ser usada para enviar mensagens do Google SecOps para um espaço do Google Chat.
    • Na secção Funcionalidade, selecione A app funciona em espaços com vários utilizadores.
    • Na secção Definições de ligação, selecione Projeto do Apps Script e cole o ID de implementação obtido no procedimento Implementar um bot.
    • Na secção Autorizações, selecione Pessoas e grupos específicos no seu domínio e especifique quem deve poder interagir com o bot.
    • Clique em Guardar. A configuração da app está concluída.

Uma vez que a app Google Chat não pode criar espaços (iniciar conversas), a app Google SecOps Chat tem de ser adicionada aos espaços para os quais deve enviar mensagens.

Depois de a integração ser configurada, a ação "List Spaces" (Listar espaços) pode ser usada para obter os espaços aos quais a app Google SecOps tem acesso (pode enviar mensagens).

Se a ação "List Spaces" não mostrar espaços disponíveis, significa que a sua app não vai poder enviar mensagens em nenhum espaço. Volte às instruções detalhadas acima e certifique-se de que seguiu cada passo atentamente

Configure a integração do Google Chat no Google SecOps

Para ver instruções detalhadas sobre como configurar uma integração no Google SecOps, consulte o artigo Configure integrações.

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
URL raiz da API String https://chat.googleapis.com/ Sim URL raiz da API que a integração usa para estabelecer ligação ao serviço Google Chat.
Conta de serviço Palavra-passe N/A Sim Conteúdo do ficheiro JSON da conta de serviço que o chatbot usa para trabalhar com o serviço Google Chat.
Validar SSL Caixa de verificação Marcado Sim Se estiver ativado, verifique se o certificado SSL para a ligação ao serviço Google Chat é válido.

Ações

Tchim-tchim

Descrição

Teste a conetividade ao Google Chat com os parâmetros fornecidos na página de configuração da integração no separador Google Security Operations Marketplace.

Executar em

Esta ação não é executada em entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Case Wall
Tipo de resultado Valor/descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

Se tiver êxito: "Ligação ao serviço Google Chat estabelecida com êxito com os parâmetros de ligação fornecidos!"

A ação deve falhar e parar a execução de um guia interativo:

Se for comunicado um erro crítico, como credenciais incorretas ou perda de conetividade: "Não foi possível estabelecer ligação ao serviço Google Chat! O erro é {0}".format(exception.stacktrace)"

Geral

Apresentar espaços

Descrição

Listar os espaços aos quais o bot do Google Chat configurado atualmente foi adicionado.

Parâmetros

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Tecla de filtro LDD

Selecione uma opção

Valores possíveis:

  • Nome
  • Nome a apresentar
  • Tipo
Não Especifique a chave que tem de ser usada para filtrar espaços do Google Chat.
Lógica de filtragem LDD

Não especificado

Valores possíveis:

  • Não especificado
  • Igual
  • Contém
Não Especifique a lógica de filtro que deve ser aplicada. A lógica de filtragem está a funcionar com base no valor fornecido no parâmetro "Chave do filtro".
Valor do filtro String N/A Não

Especifique o valor que deve ser usado no filtro.

Se "Igual a" estiver selecionado, a ação tenta encontrar a correspondência exata entre os resultados.

Se a opção "Contém" estiver selecionada, a ação tenta encontrar resultados que contenham a substring especificada.

Se não for fornecido nada neste parâmetro, o filtro não é aplicado. A lógica de filtragem está a funcionar com base no valor fornecido no parâmetro "Chave do filtro".

Máximo de registos a devolver Número inteiro 50 Não

Especifique o número de registos a devolver.

Se não for fornecido nada, a ação devolve 50 registos.

Inclua as associações de utilizadores Caixa de verificação Desmarcado Não Se estiver ativada, as informações de membros dos utilizadores são adicionadas à tabela da parede de registos de ações e ao resultado JSON.

É apresentado em

Esta ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

Se os dados estiverem disponíveis (is_success=true): "Foram encontrados com êxito espaços adicionados para os critérios fornecidos no Google Chat."

Se os dados não estiverem disponíveis (is_success=false): "Não foram encontrados espaços para os critérios fornecidos no Google Chat"

Se o parâmetro "Filter Value" não tiver nenhum valor (is_success=true):

"O filtro não foi aplicado porque o parâmetro "Valor do filtro" tem um valor vazio."

A ação deve falhar e parar a execução de um guia interativo:

Se o parâmetro Filter Key estiver definido como "Selecionar um" e o parâmetro Filter Logic estiver definido como "Igual a" ou "Contém":

"Erro ao executar a ação "List Spaces". Motivo: tem de selecionar um campo no parâmetro "Chave de filtro"."

Se for fornecido um valor inválido para o parâmetro Max Records to Return:

"Erro ao executar a ação "List Spaces". Motivo: foi fornecido um valor inválido para "Max Records to Return". Deve ser fornecido um número positivo."

Se for comunicado um erro fatal, como credenciais incorretas, sem ligação ao servidor ou outro:

"Erro ao executar a ação "List Spaces". Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela de parede da caixa

Nome da tabela: espaços disponíveis aos quais o bot foi adicionado Colunas da tabela: {fields}

Nota: se a caixa de verificação "Incluir associações de utilizadores" estiver selecionada, são adicionadas colunas adicionais com um nome a apresentar para os membros do espaço.

Geral

Enviar mensagem

Descrição

Envie uma mensagem para um espaço do Google Chat ao qual a aplicação Google SecOps foi adicionada.

Parâmetros

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Nome do espaço String N/A Sim

Especifique o nome do espaço para o qual quer enviar a mensagem.

Exemplo de nome do espaço: AAAAdaTsel0

Texto da mensagem String N/A Sim Especifique o texto da mensagem a enviar.

É apresentado em

Esta ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

Se uma mensagem for enviada com êxito (is_success=true): "A mensagem foi enviada com êxito."

A ação deve falhar e parar a execução de um guia interativo:

Se for comunicado um erro crítico, como nenhuma ligação ou credenciais incorretas: "Erro ao executar a ação "Enviar mensagem". Motivo: {0}''.format(error.Stacktrace)

Geral

Enviar mensagem avançada

Descrição

Envie uma mensagem avançada para um espaço do Google Chat com base no payload JSON da mensagem fornecida.

Parâmetros

Nome a apresentar do parâmetro Tipo Valor predefinido É obrigatório Descrição
Nome do espaço String N/A Sim

Especifique o nome do espaço para o qual quer enviar a mensagem.

Exemplo de nome do espaço: AAAAdaTsel0

Payload JSON da mensagem String {"cards":[{"sections":[{"widgets":[{"image":{"imageUrl":"https://..."}},{"buttons":[{"textButton":{"text":"ABRIR NO GOOGLE MAPS","onClick":{"openLink":{"url":"https://..."}}}}]}]}]}]} Sim

Especifique o payload JSON a enviar com a mensagem.

Para ver exemplos de uma carga útil de mensagens, consulte este artigo.

É apresentado em

Esta ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valores Exemplo
is_success Verdadeiro/Falso is_success:False
Case Wall
Tipo de resultado Valor / descrição Tipo
Mensagem de saída*

A ação não deve falhar nem parar a execução de um guia interativo:

Se uma mensagem for enviada com êxito (is_success=True): "A mensagem foi enviada com êxito."

A ação deve falhar e parar a execução de um guia interativo:

Se a carga útil JSON fornecida não for válida: "Erro ao executar a ação "Enviar mensagem avançada". Motivo: a carga útil JSON da mensagem fornecida não é válida. "

Se for comunicado um erro crítico, como nenhuma ligação ou credenciais incorretas: "Erro ao executar a ação "Enviar mensagem avançada". Motivo: {0}''.format(error.Stacktrace)

Geral

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.