Conectar um app do Chat a outros serviços e ferramentas

Esta página descreve como conectar um app do Google Chat a um serviço ou ferramenta fora do Google Chat. Embora os apps de chat sejam poderosos por si sós, eles geralmente funcionam em conjunto com outros sistemas e exigem aplicativos complementares para conectar contas, autorizar o acesso a dados, mostrar outros dados ou configurar as preferências do usuário.

Pré-requisitos

Um app do Google Chat com recursos interativos ativados. Para criar um app de chat interativo, siga um dos guias de início rápido abaixo com base na arquitetura do app que você quer usar:

Solicitar a configuração do app Chat a um usuário

Se a conclusão de uma solicitação exigir uma configuração adicional que não possa ser concluída diretamente no app Chat, retorne um URL de configuração para o usuário como parte de uma resposta normal ou apresente-o de forma particular, neste formato:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Isso informa ao Google Chat que o usuário precisa acessar uma solicitação particular, em que CONFIGURATION_URL é um link que o usuário precisa acessar para fazer mais autenticação, autorização ou configuração. Uma resposta REQUEST_CONFIG é mutuamente exclusiva de uma mensagem de resposta normal. Textos, cards ou outros atributos são ignorados.

Concluir a solicitação de configuração

Todos os eventos de interação MESSAGE que o app de chat recebe também incluem o campo configCompleteRedirectUrl. Você precisa codificar esse URL no seu URL de configuração para ser usado após a conclusão do processo. O redirecionamento para esse URL indica ao Google Chat que a solicitação de configuração foi atendida.

Quando o app Chat é iniciado, o fluxo depende da mensagem específica recebida. Em resposta a uma mensagem como @app help, um app de chat precisa responder com uma mensagem sem requerer mais configurações.

Quando um usuário é redirecionado para o configCompleteRedirectUrl fornecido na mensagem original, o Google Chat realiza as seguintes etapas:

  1. Apague a solicitação que foi exibida para o usuário iniciador.
  2. Converta a mensagem original em pública, tornando-a visível para outros membros do espaço.
  3. Envie a mensagem original para o mesmo app do Chat uma segunda vez.

A visita a um configCompleteRedirectUrl afeta apenas uma mensagem de usuário. Se um usuário tentou enviar mensagens para um app de chat várias vezes e, como resultado, recebeu várias solicitações, clicar em uma solicitação e concluir o processo de autenticação e configuração afeta apenas essa mensagem específica. As outras mensagens não são alteradas.

Quando um evento de interação MESSAGE é reenviado dessa maneira, ele precisa ser idêntico ao evento original. No entanto, há algumas situações em que os eventos de interação MESSAGE podem ser diferentes. Por exemplo, quando uma mensagem menciona o app de chat A e o app de chat B, o usuário pode editar a mensagem se o app de chat A responder com uma mensagem normal antes de autenticar com o app de chat B. Nesse caso, o app de chat B recebe o texto da mensagem editada depois que o usuário conclui a autenticação e a configuração.

Autenticação do usuário do Chat fora dele

Em alguns casos, como ao solicitar a autorização OAuth para uma API, o app precisa vincular um URL fora do Chat, mantendo a identidade do usuário. A melhor maneira de identificar o usuário nesses casos é proteger o app de destino com o Login do Google.

Use o token de identidade emitido durante o login para receber o ID do usuário. A declaração sub contém o ID exclusivo do usuário e pode ser correlacionada com o ID do usuário do Google Chat.

Embora os dois IDs não sejam exatamente idênticos, eles podem ser forçados. Para forçar o valor da declaração sub em um users/{user} do Google Chat, adicione o valor com users/. Por exemplo, o valor da reivindicação de 123 é equivalente ao nome de usuário users/123 nas mensagens do app Chat.