Connecter une application Chat à d'autres services et outils

Cette page explique comment connecter une application Google Chat à un service ou à un outil extérieur à Google Chat. Bien que les applications Chat soient efficaces par elles-mêmes, elles fonctionnent souvent de concert avec d'autres systèmes et nécessitent des applications associées pour connecter des comptes, autoriser l'accès aux données, afficher des données supplémentaires ou configurer des préférences utilisateur.

Demander la configuration de l'application Chat à un utilisateur

Si l'exécution d'une requête nécessite une configuration supplémentaire qui ne peut pas être effectuée directement dans l'application Chat, renvoyez une URL de configuration à l'utilisateur dans une réponse normale ou présentez-la en privé au format suivant:

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

Cela indique à Google Chat de présenter à l'utilisateur une invite privée, où CONFIGURATION_URL est un lien vers lequel l'utilisateur peut accéder pour une authentification, une autorisation ou une configuration supplémentaires. Une réponse REQUEST_CONFIG s'exclut mutuellement avec un message de réponse standard. Le texte, les fiches et les autres attributs sont ignorés.

Terminer la demande de configuration

Chaque événement d'interaction MESSAGE reçu par votre application Chat inclut également un paramètre configCompleteRedirectUrl. Cette URL doit être encodée dans votre URL de configuration pour être utilisée à la fin du processus. La redirection vers cette URL indique à Google Chat que la demande de configuration a été traitée.

Lorsque votre application Chat démarre, le flux dépend du message spécifique reçu. En réponse à un message tel que @app help, une application Chat doit répondre par un message sans nécessiter de configuration supplémentaire.

Lorsqu'un utilisateur est bien redirigé vers le configCompleteRedirectUrl fourni dans le message d'origine, Google Chat effectue les étapes suivantes:

  1. Efface l'invite présentée à l'utilisateur à l'origine de l'action.
  2. Convertissez le message d'origine en message public pour le rendre visible pour les autres membres de l'espace.
  3. Envoyez le message d'origine à la même application Chat une seconde fois.

La consultation d'un configCompleteRedirectUrl n'affecte qu'un seul message utilisateur. Si un utilisateur a essayé d'envoyer un message à une application Chat plusieurs fois et qu'il a par conséquent reçu plusieurs invites, cliquer sur une invite particulière et terminer le processus d'authentification et de configuration n'affecte que ce message particulier. Les autres messages ne sont pas modifiés.

Lorsqu'un événement d'interaction MESSAGE est renvoyé de cette manière, il doit être identique à l'événement d'origine. Toutefois, dans certaines situations, les événements d'interaction MESSAGE peuvent différer. Par exemple, lorsqu'un message mentionne à la fois l'application Chat A et l'application Chat B, l'utilisateur peut le modifier si l'application Chat A répond avec un message standard avant de s'authentifier avec l'application Chat B. Dans ce cas, l'application Chat B reçoit le texte du message modifié une fois que l'utilisateur a terminé l'authentification et la configuration.

Authentifier l'utilisateur de Chat en dehors de Chat

Dans certains cas, par exemple pour demander l'autorisation OAuth pour une API, votre application doit être associée à une URL en dehors de Chat tout en conservant l'identité de l'utilisateur. Dans ce cas, le meilleur moyen d'identifier l'utilisateur consiste à protéger l'application de destination avec Google Sign-In.

Utilisez le jeton d'identité émis lors de la connexion pour obtenir l'ID utilisateur. La revendication sub contient l'ID unique de l'utilisateur et peut être mise en corrélation avec l'ID utilisateur de Google Chat.

Bien que les deux ID ne soient pas exactement identiques, ils peuvent être forcés. Pour forcer la valeur de la revendication sub en une users/{user} Google Chat, ajoutez users/ au début de la valeur. Par exemple, la valeur de revendication de 123 est équivalente au nom d'utilisateur users/123 dans les messages envoyés à votre application Chat.