Escolher uma arquitetura do app Google Chat

Nesta página, descrevemos abordagens comuns de arquitetura de serviços usadas para criar apps do Google Chat. Se você já tem um app que gostaria de integrar ao Google Chat, você pode usar ou adaptar sua implementação atual. Se você estiver criando um novo app do Chat, esta página apresenta informações semelhantes de algumas maneiras diferentes para ajudar na escolha da arquitetura ideal para seu caso de uso:

Visão geral por recursos e funcionalidades

A tabela a seguir destaca os principais recursos Apps do Chat e recomendações (). Em alguns casos, outro estilo de arquitetura pode ser possível para desenvolver com esses recursos, mas não é tão adequado para o caso de uso quanto outros estilos ().

Recursos e funcionalidades

Serviço Web ou HTTP

Pub/Sub

Webhooks

Apps Script

AppSheet

Dialogflow

Script

Público-alvo

Sua equipe

Sua organização

O público

Interatividade do usuário

Use o processamento de linguagem natural

Padrões de mensagem

Enviar e receber mensagens síncronas

Enviar e receber mensagens síncronas e assíncronas

Enviar apenas mensagens assíncronas

Enviar mensagens de um sistema externo para um único espaço do Chat

Acessar outros serviços e sistemas

Integre com outros serviços do Google

Comunicar-se por trás de um firewall

Consultar ou se inscrever em eventos do Chat

Estilos de programação e implantação

Desenvolvimento sem código

Desenvolvimento com pouco código

Desenvolvimento em uma linguagem de programação de sua escolha

DevOps simplificado

Gerenciamento completo de DevOps e CI/CD

Estilos de arquitetura de serviço

Esta seção descreve algumas das abordagens de arquitetura mais comuns usadas para criar apps do Chat.

Serviço Web ou HTTP

Um serviço HTTP ou Web é a arquitetura mais comumente implantada porque oferece o máximo de flexibilidade para os desenvolvedores criarem públicos Apps de chat Esta arquitetura é recomendada para os seguintes casos de uso específicos:

  • O app do Chat é implantado para o público Google Workspace Marketplace.
  • O app do Chat pode enviar e receber todas as mensagens padrões: enviar e receber mensagens síncronas, enviar mensagens e enviar mensagens de um sistema externo.
  • O app do Chat é desenvolvido em qualquer programação idioma de destino.
  • O app do Chat exige DevOps e CI/CD completos de projetos.
  • O serviço do app Chat é implementado na nuvem ou servidores no local.

Neste design, você configura o Chat para integração com um serviço remoto usando HTTP, conforme mostrado no diagrama a seguir:

Arquitetura de um app do Chat que usa um serviço da Web em um servidor local.

No diagrama anterior, um usuário interagindo com uma interface HTTP O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem em um espaço do Chat para um App Chat.
  2. Uma solicitação HTTP é enviada para um servidor da Web que é uma nuvem ou sistema local que contém o app do Chat lógica.
  3. Como opção, a lógica do app de chat pode interagir serviços externos de terceiros, como um sistema de gerenciamento de projetos ferramenta de venda de ingressos.
  4. O servidor da Web envia uma resposta HTTP Serviço de app do Chat no Chat.
  5. A resposta é entregue ao usuário.
  6. Opcionalmente, o app do Chat pode chamar o método a API Chat para postar mensagens de forma assíncrona ou realizar outras as operações.

Essa arquitetura oferece flexibilidade para usar bibliotecas e recursos componentes que já existem no sistema, porque eles Os apps de chat podem ser projetados com diferentes linguagens de programação. Há maneiras diferentes de implementar essa arquitetura. No Google Cloud, pode usar o Cloud Functions, o Cloud Run e o App Engine. Para começar, consulte Criar um app do Google Chat.

Pub/Sub

Se o app do Chat for implementado atrás de um firewall, O Chat não pode fazer chamadas HTTP para ele. Uma abordagem é usar Pub/Sub para ativar a implementação do app do Chat para assinar um que carrega as mensagens do Chat. O Pub/Sub é uma interface assíncrona serviço de mensagens que separa os serviços que produzem mensagens dos serviços processando essas mensagens. Esta arquitetura é recomendada para os seguintes casos de uso específicos:

  • O app do Chat é criado com a proteção de um firewall.
  • O app do Chat recebe eventos sobre um espaço do Chat.
  • O app do Chat é implantado na sua organização.
  • O app do Chat pode enviar e receber mensagens e pode enviar mensagens assíncronas.
  • O app do Chat é desenvolvido em qualquer programação idioma de destino.
  • O app do Chat exige DevOps e CI/CD completos de projetos.

O diagrama a seguir mostra a arquitetura App do Chat criado com o Pub/Sub:

Arquitetura de um app do Chat implementado com o Pub/Sub.

No diagrama anterior, um usuário interagindo com um Pub/Sub O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem no Chat para App do Chat, seja em mensagem direta ou em uma Um evento ou espaço do Chat acontece em um espaço do Chat em que o app do Chat tem uma conta ativa assinatura.

  2. O Chat envia a mensagem para um tópico do Pub/Sub.

  3. Um servidor de aplicativos, ou seja, um sistema na nuvem ou no local que contém a lógica do app do Chat, assina o tópico do Pub/Sub para receber a mensagem pelo firewall.

  4. Opcionalmente, o app do Chat pode chamar o método a API Chat para postar mensagens de forma assíncrona ou realizar outras as operações.

Para começar, consulte Use o Pub/Sub como um endpoint para seu app do Chat.

Webhooks

Você pode criar um app do Chat que só envia mensagens a um espaço específico do Chat usando chamadas para uma URL do webhook. Essa arquitetura é recomendada para os seguintes casos de uso:

  • O app Chat é implantado para sua equipe.
  • O app do Chat envia mensagens de um para um único espaço do Chat.

Com essa arquitetura, o app do Chat fica limitado a um espaço específico do Chat e não permite a interação do usuário, porque como mostrado no diagrama a seguir:

Arquitetura para webhooks de entrada para enviar mensagens assíncronas ao Chat.

No diagrama anterior, um app do Chat tem o seguinte fluxo de informações:

  1. A lógica do app do Chat recebe informações serviços externos de terceiros, como um sistema de gerenciamento de projetos ferramenta de venda de ingressos.
  2. A lógica do app de chat é hospedada em uma nuvem ou que pode enviar mensagens usando um URL de webhook para um espaço específico do Chat.
  3. Os usuários podem receber mensagens do app do Chat em: esse espaço específico do Chat, mas não conseguem interagir com App Chat.

Não é possível compartilhar este tipo de app do Chat em outras Espaços do Chat ou com outras equipes e não podem ser publicados no Google Workspace Marketplace. Os webhooks de entrada são recomendados para Apps de chat para informar alertas, status ou para alguns tipos de Prototipagem do app do Chat.

Para começar, consulte Enviar mensagens para o Chat com webhooks.

Apps Script

Você pode criar sua lógica de app do Chat inteiramente em JavaScript. O Google Apps Script é uma plataforma de desenvolvimento com pouco código para Apps de chat O Apps Script gerencia fluxo de autorização e os tokens OAuth 2.0 para autenticação do usuário. Você pode usar Apps Script para criar apps de chat públicos, mas não é recomendado devido à frequência cotas e limites.

Essa arquitetura é recomendada para os seguintes casos de uso:

  • O app Chat é implantado para sua equipe, ou à sua organização.
  • O app do Chat pode enviar e receber todas as mensagens padrões: enviar e receber mensagens síncronas, enviar mensagens e enviar mensagens de um sistema externo.
  • O app Chat exige DevOps simplificado de projetos.

Essa arquitetura é útil para apps do Chat que também têm integração com outros serviços do Google Workspace e do Google, como Planilhas Google, Apresentações Google, Google Agenda, Google Drive, Google Maps e YouTube, conforme mostrado diagrama a seguir:

Arquitetura de um app do Chat implementado com o Apps Script.

No diagrama anterior, um usuário interagindo com um Apps Script O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem para um app do Chat em um mensagem direta ou em um espaço do Chat.
  2. A lógica do app do Chat implementada na O Apps Script, localizado no Google Cloud, recebe a mensagem.
  3. Outra opção é a integração da lógica do app do Chat serviços do Google Workspace, como Agenda ou Planilhas ou outros Serviços do Google, como o Google Maps ou o YouTube.
  4. A lógica do app de chat envia uma resposta de volta ao Serviço de app do Chat no Chat.
  5. A resposta é entregue ao usuário.

Para começar, consulte Crie um app do Chat com o Apps Script.

AppSheet

Você pode criar um app do Chat compartilhado por domínio sem código usando o AppSheet. É possível simplificar o processo de desenvolvimento o uso do modo de configuração automática e dos modelos a seguir para criar aplicativos Ações no app do Chat. No entanto, alguns Os recursos do app da Web do AppSheet não estão disponíveis nos apps do Chat.

Essa arquitetura é recomendada para os seguintes casos de uso:

  • O app Chat é implantado para você e sua equipe.
  • O app do Chat pode enviar e receber mensagens e pode enviar mensagens assíncronas.
  • O app Chat exige DevOps simplificado de projetos.

O diagrama a seguir mostra a arquitetura App do Chat criado com o AppSheet:

Arquitetura de um app do Chat implementado com o AppSheet.

No diagrama anterior, um usuário interagindo com um AppSheet O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem no Chat para App do Chat, seja em mensagem direta ou em uma Espaço do Chat.
  2. A lógica do app do Chat implementada na O AppSheet, que fica no Google Cloud, recebe o mensagem.
  3. Outra opção é a integração da lógica do app do Chat serviços do Google Workspace, como o Apps Script ou Planilhas Google.
  4. A lógica do app de chat envia uma resposta de volta ao Serviço de app do Chat no Chat.
  5. A resposta é entregue ao usuário.

Para começar, consulte Criar um app do Chat com o AppSheet.

Dialogflow

Você pode criar um app do Chat com o Dialogflow, uma plataforma de linguagem natural para conversas automatizadas e respostas dinâmicas. Essa arquitetura é recomendada para os seguintes casos de uso:

  • O app do Chat pode enviar e receber mensagens e envio de mensagens.
  • O app do Chat usa o processamento de linguagem natural de responder e interagir com os usuários.

O diagrama a seguir mostra a arquitetura App do Chat criado com o Dialogflow:

Arquitetura de um app do Chat implementado com o Dialogflow.

No diagrama anterior, um usuário interagindo com uma instância do Dialogflow O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem no Chat para App do Chat, seja em mensagem direta ou em uma Espaço do Chat.
  2. Um agente virtual do Dialogflow, residente no Google Cloud, recebe e processa a mensagem para produzir uma resposta.
  3. Opcionalmente, usando um Webhook do Dialogflow; o agente do Dialogflow pode interagir com serviços externos de terceiros, como como um sistema de gerenciamento de projetos ou uma ferramenta de emissão de tíquetes.
  4. O agente do Dialogflow envia uma resposta para o Serviço de app do Chat no Chat.
  5. A resposta é entregue ao espaço do Chat.

Para começar, consulte Criar um app do Dialogflow para o Google Chat

Aplicativo ou script de linha de comando

Você pode criar um aplicativo de linha de comando ou um script que envia mensagens no Chat ou realiza outras operações, como criar um espaço ou gerenciar os participantes, sem permitir que os usuários invocar ou responder ao app do Chat Conversar. Esta arquitetura é recomendada para os seguintes casos:

  • O app do Chat é desenvolvido em qualquer programação idioma de destino.
  • O app do Chat só pode enviar mensagens assíncronas.

Veja a seguir a arquitetura apresentada pelo diagrama:

Arquitetura de um app de chat implementado com um aplicativo de linha de comando ou um script.

No diagrama anterior, o app do Chat tem a seguinte fluxo de informações:

  1. O app do Chat chama a API Chat para enviar ou realizar outra operação.
  2. O Chat executa a operação solicitada.
  3. Opcionalmente, o app do Chat imprime uma confirmação pela CLI.

Implementação da lógica do app do Chat

O Chat não restringe a forma de implementar a Lógica do app de chat. Você pode criar um comando de sintaxe fixa use bibliotecas ou serviços avançados de processamento de linguagem e IA, assine e responder a eventos ou qualquer outra coisa apropriada para suas metas específicas.

Processar interações do usuário

O app do Chat pode receber e responder a interações do usuário de várias maneiras. Uma interação do usuário é qualquer ação que um usuário realiza para invocar ou interagir com um app do Chat.

Analisador de comando

Os apps do Chat orientados por comandos examinam o payload Eventos de interação com o app do Chat Depois, extraia comandos e parâmetros desse conteúdo. Por exemplo, consulte Configurar comandos de barra para interagir com os usuários do Chat

Outra abordagem é tokenizar a mensagem, extrair o comando e referenciar um dicionário que mapeia comandos para funções de gerenciador de cada comando.

Interface do usuário com base em caixas de diálogo

Apps baseados em diálogo respondem a Eventos de interação com o app do Chat ao exibir anúncios baseados em cartão caixas de diálogo em que o usuário pode interagir com o app do Chat, como preenchimento de formulários ou solicitar ações.

Sempre que o usuário executa uma ação em uma caixa de diálogo, um novo evento de interação é enviadas ao app do Chat, que pode responder atualizando o ou enviar uma mensagem.

Processamento de linguagem natural

Muitas implementações de apps do Chat usam linguagem natural de dados (PLN) para determinar o que o usuário está pedindo. Há muitas maneiras implementar o PLN como preferir.

É possível usar PLN nos seus Implementação do app do Chat com Dialogflow ES (em inglês) ou Integração do Dialogflow CX Chat, que permite criar agentes virtuais para conversas automatizadas e de resposta.

Enviar solicitações ao Chat de forma proativa

Os apps de chat também podem enviar mensagens ou outras solicitações para Chat, que não são acionados por interações diretas do usuário no Conversar. Esses apps do Chat podem ser acionadas, por exemplo, por aplicativos de terceiros ou usando uma linha de comando de um usuário, mas ele não pode interagir com elas Apps de chat diretamente no Chat.

Os apps do Chat não interativos usam a API Chat para enviar mensagens mensagens ou outros tipos de solicitações para o Chat.

Padrões de conversa

Considere como você quer que o app do Chat para interagir com os usuários. As seções a seguir descrevem padrões de conversa que seu app do Chat pode implementar.

Chamada e resposta (síncrona)

Em um padrão de resposta e chamada síncrona, O app do Chat responde às mensagens dos usuários individual. Uma mensagem de um usuário para o app do Chat resulta em uma resposta do app do Chat, conforme mostrado diagrama a seguir:

Arquitetura de uma mensagem síncrona.

No diagrama anterior, um usuário interagindo com um O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem síncrona a um App do Chat, por exemplo, "Quando é minha próxima reunião?"
  2. O app do Chat envia uma mensagem síncrona ao usuário, por exemplo, "Dr. Silva às 2:30".

Para esse tipo de padrão de conversa, é possível implementar A arquitetura de um app de chat usando um serviço da Web, o Pub/Sub, Apps Script, AppSheet ou Dialogflow.

Várias respostas (assíncrona)

O padrão de várias respostas pode incluir respostas síncronas e assíncronas, e envio de mensagens. Esse padrão é caracterizado pela comunicação bidirecional entre os usuários e o app Chat, com a App de chat gerando qualquer número de mensagens adicionais conforme mostrado no diagrama a seguir:

Arquitetura de uma mensagem assíncrona.

No diagrama anterior, um usuário interagindo com um O app do Chat tem o seguinte fluxo de informações:

  1. Um usuário envia uma mensagem síncrona a um App do Chat, por exemplo, "Monitorar tráfego".
  2. O app do Chat envia uma mensagem síncrona ao que o usuário confirme a solicitação, por exemplo, "Monitoring on".
  3. Depois, o app Chat envia uma ou mais mensagens para o usuário chamando a API REST, por exemplo, "Novo tráfego".
  4. O usuário envia uma mensagem síncrona adicional ao App do Chat, por exemplo, "Ignorar tráfego".
  5. O app do Chat envia uma mensagem síncrona ao que o usuário confirme a solicitação, por exemplo, "Monitoramento desativado".

Para esse tipo de padrão de conversa, é possível implementar A arquitetura de um app de chat usando um serviço da Web, o Pub/Sub, Apps Script ou AppSheet.

Consultar ou inscrever-se em eventos (assíncrono)

Em um padrão assíncrono orientado a eventos, o app do Chat recebe eventos consultando a API Chat ou criando um assinatura de um espaço ou usuário do Chat usando o na API Google Workspace Events. Os eventos representam alterações no Chat recursos, como quando uma nova mensagem é postada ou um usuário entra em um espaço. Apps de chat orientados por eventos examinar o payload do evento para conseguir dados sobre o Chat alterado; recurso e responda de acordo.

Os apps de chat podem receber vários tipos de eventos, incluindo eventos sobre espaços, associações, mensagens e reações. Quando um O app do Chat recebe um evento consultando o na API Chat ou por uma assinatura ativa, a O app de chat pode gerar quantos respostas assíncronas, que ele envia de volta ao Chat usando o API Chat.

Esse tipo de lógica pode ser usado para atualizar sistemas externos, como um tíquete sistema de gerenciamento de projetos ou enviar mensagens para um espaço do Chat de forma assíncrona, por exemplo, enviando uma mensagem de boas-vindas quando um novo usuário entra um espaço do Chat.

O diagrama a seguir mostra um exemplo de uma conversa orientada a eventos padrão:

Arquitetura de uma assinatura de eventos do Chat

No diagrama anterior, a interação entre o Chat e o O app do Chat tem o seguinte fluxo de informações:

  1. O app do Chat é inscrito em um espaço do Google Chat.
  2. O espaço em que o app do Chat está inscrito mudanças.
  3. O app do Chat entrega um evento para um tema Pub/Sub, que serve como o endpoint de notificação para a assinatura. O contém dados sobre o que foi alterado no recurso.
  4. O app do Chat processa Mensagem do Pub/Sub que contém o evento e, se necessário, toma as medidas necessárias.

Para esse tipo de padrão de conversa, é possível implementar A arquitetura de um app de chat usando o Pub/Sub, um serviço da Web, ou o Apps Script.

Para saber mais sobre como receber e responder a eventos, consulte Trabalhar com eventos do Google Chat.

Mensagem unidirecional de um app do Chat

Uma mensagem unidirecional de um padrão de app do Chat permite o app de chat envia mensagens assíncronas Espaço do Chat, mas não permite que os usuários interajam diretamente com o App Chat. Esse padrão não é coloquial ou interativo, mas pode ser útil para relatórios de alarme, como mostrado nas diagrama a seguir:

Arquitetura de uma mensagem unidirecional.

No diagrama anterior, um usuário no mesmo espaço que o O app do Chat tem o seguinte fluxo de informações:

  • O app do Chat envia uma mensagem assíncrona ao usuário chamando a API Chat ou publicando em um webhook URL. Por exemplo, "Alerta de estouro da fila".
  • Opcionalmente, o app do Chat envia mensagens assíncronas.

Para esse tipo de padrão de conversa, é possível implementar Arquitetura de app de chat usando um serviço da Web, um webhook Apps Script, AppSheet, um aplicativo de linha de comando, ou um script.

Mensagem unidirecional para um app do Chat

Uma mensagem unidirecional para um padrão de app do Chat permite que um usuário enviar uma mensagem para um app do Chat sem o O app do Chat responde enquanto ainda processa a solicitação. Embora essa arquitetura seja tecnicamente possível, o resultado é uma experiência experiência do usuário e não recomendamos esse padrão.