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

Nesta página, descrevemos como conectar um app do Google Chat a um serviço ou ferramenta que está fora do Google Chat. Embora os apps de chat sejam eficientes por si só, eles geralmente funcionam em conjunto com outros sistemas e exigem que os aplicativos complementares conectem contas, autorizem o acesso a dados, exibam mais dados ou configurem preferências do usuário.

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

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

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

Isso instrui o Google Chat a apresentar ao usuário uma solicitação particular, em que CONFIGURATION_URL é um link a ser acessado pelo usuário para autenticação, autorização ou configuração adicional. Uma resposta REQUEST_CONFIG é mutuamente exclusiva com uma mensagem de resposta normal. Textos, cards ou outros atributos são ignorados.

Preencher a solicitação de configuração

Todo evento de interação MESSAGE que seu app do Chat recebe também inclui um parâmetro configCompleteRedirectUrl. Esse URL precisa ser codificado no URL de configuração para ser usado na conclusão do processo. Redirecionar para esse URL indica ao Google Chat que a solicitação de configuração foi atendida.

Quando seu app do Chat é iniciado, o fluxo depende da mensagem específica recebida. Em resposta a uma mensagem como @app help, um app do Chat responderá com uma mensagem sem exigir outras configurações.

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

  1. Apague o comando que foi mostrado ao usuário que iniciou.
  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.

Acessar um configCompleteRedirectUrl afeta apenas uma única mensagem do usuário. Se um usuário tentou enviar mensagens para um app do Chat várias vezes e, como resultado, recebeu várias solicitações, clicar em uma solicitação específica 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 com MESSAGE é reenviado dessa forma, ele precisa ser idêntico ao evento original. No entanto, há algumas situações em que os eventos de interação com MESSAGE podem ser diferentes. Por exemplo, quando uma mensagem menciona os apps do Chat A e B, o usuário pode editar a mensagem se o app A responder com uma mensagem normal antes da autenticação com o app B. Nesse caso, o app do Chat B recebe o texto da mensagem editada depois que o usuário conclui a autenticação e a configuração.

Autenticar o usuário do Chat fora dele

Em alguns casos, como ao solicitar autorização OAuth para uma API, seu app precisa ser vinculado a 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 conseguir 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 a um users/{user} do Google Chat, inclua users/ antes do valor. Por exemplo, o valor da declaração 123 é equivalente ao nome de usuário users/123 nas mensagens para seu app do Chat.