Recevoir des interactions utilisateur et y répondre

Cette page explique comment votre application Google Chat peut recevoir les interactions des utilisateurs dans Google Chat et y répondre.

Pour créer des interfaces interactives pour les applications Chat, vous utilisez les composants suivants :

  • Déclencheurs : les méthodes permettant aux utilisateurs de Google Chat d'appeler une application Chat, par exemple en l'ajoutant à un espace ou en lui envoyant un message.
  • Objets d'événement : données que les applications Chat reçoivent des déclencheurs ou des interactions avec l'UI.
  • Actions : les façons dont les applications Chat peuvent répondre aux interactions, comme l'envoi de messages ou le renvoi d'une interface utilisateur basée sur des fiches.
L'application Chat reçoit un objet d'événement à partir d'un déclencheur "Ajouté à un espace"
Figure 1 : Lorsqu'un utilisateur ajoute une application Chat à un espace, le déclencheur Ajouté à l'espace se déclenche et envoie un objet événement. Pour répondre par un message, l'application Chat gère l'objet d'événement et renvoie une action qui crée le message.

Les applications de chat peuvent créer et afficher des interfaces de différentes manières :

  • Les messages peuvent contenir du texte, des fiches statiques ou interactives, et des boutons d'accessoires.
  • Les pages d'accueil (accueil de l'application) qui s'affichent dans l'onglet Accueil des messages privés avec l'application Chat.
  • Les boîtes de dialogue, qui sont des cartes qui s'ouvrent dans une nouvelle fenêtre et qui invitent généralement les utilisateurs à fournir des informations.
  • Les aperçus de liens, qui sont des cartes affichant des informations sur un service externe.

Prérequis

Fonctionnement des interactions utilisateur

Lorsqu'un utilisateur interagit avec une application Chat, Google Chat appelle un déclencheur configuré et envoie un objet d'événement au point de terminaison ou à la fonction de votre application Chat. Votre application Chat traite l'objet d'événement et peut renvoyer une action de manière synchrone dans un délai de 30 secondes ou répondre de manière asynchrone à l'aide de l'API Chat.

Le schéma suivant montre comment les applications Google Chat traitent les interactions des utilisateurs et y répondent :

Architecture de la façon dont les applications Google Chat traitent les interactions utilisateur.

Déclencheurs

Les déclencheurs sont les méthodes spécifiques que les utilisateurs emploient pour appeler une application Chat à l'aide de l'interface utilisateur Chat, par exemple en utilisant des @mentions ou des commandes d'application.

Le tableau suivant présente les déclencheurs Chat, une description et la façon dont les applications Chat répondent généralement :

Déclencheur Description Réponse type
Ajouté à l'espace

Un utilisateur ajoute l'application Chat à un espace ou un administrateur Google Workspace installe l'application Chat dans des espaces de messages privés pour les utilisateurs de son organisation. Pour en savoir plus sur les applications Chat installées par les administrateurs, consultez Installer des applications Marketplace dans votre domaine dans la documentation du centre d'aide pour les administrateurs Google Workspace.

L'application Chat envoie un message d'accueil qui explique ce qu'elle fait et comment les utilisateurs de l'espace peuvent interagir avec elle.
Message

Un utilisateur interagit avec l'application Chat dans un message de l'une des manières suivantes :

  • Envoie un message dans un espace de message privé (MP) avec l'application Chat.
  • @mentionne l'application Chat dans n'importe quel type d'espace.
  • Envoie un message contenant un lien qui correspond au format d'URL pour les aperçus de liens.
  • Saisit du texte dans le menu à sélection multiple d'un widget selectionInput.
L'application Chat répond en fonction du contenu du message. Par exemple, une application Chat répond par un message, joint une fiche de prévisualisation de lien ou suggère des éléments dans un menu à sélection multiple.
Supprimé de l'espace

Un utilisateur supprime l'application Chat d'un espace ou un administrateur Google Workspace désinstalle l'application Chat pour un utilisateur de son organisation.

Les utilisateurs ne peuvent pas supprimer les applications Chat installées par leur administrateur. Si un utilisateur a déjà installé l'application Chat, elle reste installée, qu'un administrateur Google Workspace tente ou non de la désinstaller.

L'application Chat supprime toutes les notifications entrantes configurées pour l'espace (par exemple, la suppression d'un webhook) et libère l'espace de stockage interne. Les applications de chat ne peuvent pas répondre à ce déclencheur avec des messages, car elles ne sont plus membres de l'espace.
Commande d'application

Un utilisateur appelle une commande d'application Chat (par exemple, une commande à barre oblique, une commande rapide ou une action sur un message).

L'application Chat répond à la commande. Par exemple, il répond par un message ou ouvre une boîte de dialogue.
Accueil de l'application

Un utilisateur ouvre l'onglet Accueil dans un espace de message privé (MP) à un contre un avec l'application Chat ou interagit avec un widget sur la fiche de la page d'accueil.

L'application Chat renvoie un objet RenderActions qui envoie une fiche de page d'accueil (pushCard) ou met à jour la fiche de page d'accueil affichée (updateCard).

Vous configurez les points de terminaison ou les fonctions de rappel pour ces déclencheurs dans la page Configuration de l'API Chat de la console Google Cloud. Pour obtenir des instructions détaillées, consultez Configurer l'API Google Chat.

Configurer les prompts de démarrage

Les invites de démarrage aident les utilisateurs à découvrir les fonctionnalités de votre application Chat lorsqu'ils ouvrent un message privé vide avec votre application. Vous pouvez configurer jusqu'à trois invites de démarrage.

Pour ajouter et configurer des invites de démarrage :

  1. Dans la console Google Cloud, accédez à la page Configuration de l'API Chat :

    Accéder à la page de configuration de l'API Chat

  2. Sous Fonctionnalités interactives, recherchez Requêtes de démarrage, puis cliquez sur Ajouter une requête.

  3. Dans le champ Position (1-3), saisissez un nombre compris entre 1 et 3 pour spécifier l'ordre d'affichage.

  4. Sous Sélection du type, choisissez le comportement de l'invite :

    • Prompt textuel : insère du texte prédéfini dans la barre de rédaction lorsque l'utilisateur clique sur le chip de prompt.
    • Invite de commande : exécute une commande à barre oblique ou une commande rapide enregistrée lorsque vous cliquez dessus. Les commandes qui nécessitent des arguments supplémentaires ne peuvent pas être sélectionnées.
  5. Configurez la requête en fonction du type sélectionné :

    • Si vous avez sélectionné "Prompt textuel" :

      1. Dans Titre, saisissez le titre du prompt affiché sur le chip (30 caractères maximum).
      2. Dans Texte du prompt, saisissez le texte qui s'affiche dans la barre de rédaction (60 caractères maximum).
      3. Facultatif : Ajoutez des titres et du texte localisés pour les utilisateurs dans d'autres langues :
      4. Sous Invites localisées, cliquez sur Ajouter une langue.
      5. Dans Langue, sélectionnez une langue compatible dans le menu déroulant.
      6. Dans Titre localisé, saisissez le titre localisé (30 caractères maximum).
      7. Dans Texte du prompt localisé, saisissez le texte du prompt localisé (60 caractères maximum).
      8. Répétez l'opération pour ajouter d'autres langues si nécessaire.
    • Si vous avez sélectionné "Invite de commandes" :

      1. Dans Commande à barre oblique / Commande rapide, sélectionnez la commande dans le menu déroulant.
  6. Cliquez sur OK, puis sur Enregistrer en bas de la page.

Gérer les nouvelles tentatives d'appels HTTP à votre service

Si une requête HTTPS envoyée à votre service échoue (par exemple, en cas de délai d'attente, de défaillance réseau temporaire ou de code d'état HTTPS non 2xx), Google Chat peut réessayer de l'envoyer plusieurs fois en quelques minutes (mais cela n'est pas garanti). Par conséquent, une application Chat peut recevoir le même événement plusieurs fois dans certaines situations. Si la requête aboutit, mais renvoie une charge utile de réponse non valide, Google Chat ne la relance pas.

Objets d'événement

Les applications de chat reçoivent des objets d'événement lorsqu'un déclencheur Chat s'exécute ou lorsque des utilisateurs Chat interagissent avec une UI de l'application de chat (par exemple, en cliquant sur un bouton ou en envoyant une boîte de dialogue). L'objet d'événement vous permet d'utiliser les données d'interaction pour répondre ou mettre à jour une UI.

Charges utiles des objets d'événement

Chaque objet d'événement Chat inclut un commonEventObject avec des informations sur l'hôte et la plate-forme (hostApp: "CHAT", clientPlatform, userLocale, userTimezone, parameters et formInputs) et un objet chat contenant le contexte spécifique à Chat :

  • Pour un déclencheur Accueil de l'application (lorsqu'un utilisateur ouvre l'onglet Accueil dans un message privé individuel avec l'application Chat), l'objet chat contient chat.user et chat.eventTime sans champ payload d'union. Lorsqu'un utilisateur clique sur un bouton dans la fiche de la page d'accueil, l'objet d'événement inclut chat.buttonClickedPayload ainsi que commonEventObject.parameters (et commonEventObject.formInputs si la fiche contient des champs de formulaire).
  • Pour les interactions avec les espaces et les messages (Ajouté à l'espace, Message, Supprimé de l'espace, Commande d'application ou interactions avec les boutons et les widgets), l'objet chat inclut chat.user, chat.space, chat.eventTime et la charge utile d'interaction correspondante :
    • messagePayload : contient space, message et configCompleteRedirectUri lorsqu'un utilisateur envoie un message.
    • addedToSpacePayload : contient space, interactionAdd et configCompleteRedirectUri lorsque l'application Chat est ajoutée à un espace.
    • removedFromSpacePayload : contient le space lorsque l'application Chat est supprimée d'un espace.
    • buttonClickedPayload : contient space, message, isDialogEvent et dialogEventType lorsqu'un utilisateur clique sur un bouton d'une fiche ou d'une boîte de dialogue.
    • widgetUpdatedPayload : contient le space lorsqu'un utilisateur interagit avec un widget, par exemple en saisissant du texte dans un menu à sélection multiple avec une source de données externe.
    • appCommandPayload : contient space, message, appCommandMetadata, isDialogEvent, dialogEventType et configCompleteRedirectUri lorsqu'un utilisateur appelle une commande d'application.

Pour en savoir plus sur les objets d'événement de module complémentaire dans Chat et d'autres applications Google Workspace, consultez Objets d'événement.

Fournir une réponse

Cette section explique comment les applications Chat utilisent les actions pour répondre de manière synchrone aux interactions des utilisateurs.

Pour répondre avec une action, une application Chat doit répondre dans les 30 secondes, et la réponse doit s'appliquer à l'espace où l'interaction a eu lieu. Ces réponses synchrones ne nécessitent pas d'authentification. Si votre application Chat a besoin de plus de 30 secondes ou doit agir en dehors de l'espace, configurez l'authentification et répondez de manière asynchrone à l'aide de l'API Google Chat.

Pour répondre aux interactions utilisateur de manière synchrone, votre application Chat gère l'objet événement entrant et renvoie l'un des objets JSON suivants :

  • DataActions : crée ou met à jour les messages de chat (CreateMessageAction, UpdateMessageAction) ou ajoute des aperçus de liens (UpdateInlinePreviewAction) à l'aide de chatDataActionMarkup.
  • RenderActions : crée, met à jour ou ferme une page d'accueil ou une boîte de dialogue (pushCard, updateCard, endNavigation: "CLOSE_DIALOG"), ou fournit des suggestions d'entrée dynamiques pour un menu à sélection multiple (modifyCard).
  • AuthorizationError : invite les utilisateurs à se connecter ou à s'authentifier auprès d'un service externe à l'aide d'une fiche d'autorisation de base (basic_authorization_prompt).

Le tableau suivant montre comment les applications Chat peuvent répondre avec des actions. Les applications Chat peuvent renvoyer directement des objets JSON ou créer la réponse à l'aide des fonctions AddOnResponseService et CardService d'Apps Script.

Réponse de l'application Chat Action requise pour renvoyer (JSON) Action requise pour renvoyer (Apps Script)
Envoyer un message ou modifier un message. DataActions (createMessageAction ou updateMessageAction) DataActionsResponse
Aperçus des liens dans les messages que les utilisateurs Chat envoient dans un espace. DataActions (updateInlinePreviewAction) DataActionsResponse
Afficher ou mettre à jour une page d'accueil dans l'onglet Accueil d'un message privé. RenderActions (pushCard ou updateCard) ActionResponse
Ouvrez, mettez à jour ou fermez une boîte de dialogue. RenderActions (pushCard, updateCard ou endNavigation: "CLOSE_DIALOG") ActionResponse
Pour collecter des informations à partir d'une fiche ou d'une boîte de dialogue, suggérez des éléments de sélection en fonction de ce que les utilisateurs saisissent dans un menu à sélection multiple. RenderActions (modifyCard) ActionResponse
Demandez la configuration ou l'autorisation pour un service externe. AuthorizationError (basic_authorization_prompt) AuthorizationException

Répondre par un message

Les applications de chat peuvent répondre par un message à l'un des déclencheurs ou interactions suivants :

  • Les déclencheurs de message, par exemple lorsque les utilisateurs @mentionnent ou envoient un message privé à une application Chat.
  • Les déclencheurs "Ajouté à un espace", par exemple lorsque les utilisateurs installent l'application Chat depuis Google Workspace Marketplace ou l'ajoutent à un espace.
  • Les déclencheurs de commandes d'application, par exemple lorsque les utilisateurs appellent une commande à barre oblique ou une commande rapide.
  • Clics sur les boutons des fiches dans les messages ou les boîtes de dialogue. Par exemple, lorsque les utilisateurs saisissent des informations et cliquent sur "Envoyer".

Les applications de chat peuvent inclure les éléments suivants dans un message :

  • Texte contenant des liens hypertextes, des mentions @ et des emoji. Consultez Mettre en forme des messages.
  • Une ou plusieurs fiches, qui peuvent s'afficher dans un message ou s'ouvrir dans une nouvelle fenêtre sous forme de boîte de dialogue. Consultez Créer des fiches pour les applications Google Chat.
  • Un ou plusieurs widgets accessoires, qui sont des boutons qui apparaissent après le texte ou les cartes d'un message.

Pour répondre avec un message, renvoyez DataActions avec un objet CreateMessageAction :

{
  "hostAppDataAction": {
    "chatDataAction": {
      "createMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

Remplacez MESSAGE par une ressource Message de l'API Chat.

Dans l'exemple suivant, une application Chat crée et envoie un message texte d'intégration chaque fois qu'elle est ajoutée à un espace en répondant au déclencheur Ajouté à l'espace avec DataActions :

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The request object from Google Chat.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  const chatEvent = req.body.chat;
  // Send an onboarding message when added to a Chat space
  if (chatEvent.addedToSpacePayload) {
    res.json({ hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
      text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
        'To learn what else I can do, type `/help`.'
    }}}}});
  }
};

Python

from flask import Flask, request, json
app = Flask(__name__)

@app.route('/', methods=['POST'])
def cymbal_app():
  """Sends an onboarding message when the Chat app is added to a space.

  Returns:
    Mapping[str, Any]: The response object from the Chat app.
  """
  chat_event = request.get_json()["chat"]
  if "addedToSpacePayload" in chat_event:
    return json.jsonify({ "hostAppDataAction": { "chatDataAction": {
      "createMessageAction": { "message": {
        "text": 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
        'To learn what else I can do, type `/help`.'
      }}
    }}})

Java

@SpringBootApplication
@RestController
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }

  /*
   * Sends an onboarding message when the Chat app is added to a space.
   *
   * @return The response object from the Chat app.
   */
  @PostMapping("/")
  @ResponseBody
  public GenericJson onEvent(@RequestBody JsonNode event) throws Exception {
    JsonNode chatEvent = event.at("/chat");
    if (!chatEvent.at("/addedToSpacePayload").isEmpty()) {
      return new GenericJson() { {
        put("hostAppDataAction", new GenericJson() { {
          put("chatDataAction", new GenericJson() { {
            put("createMessageAction", new GenericJson() { {
              put("message", new Message().setText(
                "Hi, Cymbal at your service. I help you manage your calendar " +
                "from Google Chat. Take a look at your schedule today by typing " +
                "`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
                "To learn what else I can do, type `/help`."
              ));
            } });
          } });
        } });
      } };
    }
    return new GenericJson();
  }
}

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Google Chat.
 * @return {Object} Response from the Chat app.
 */
function onAddedToSpace(event) {
  return { hostAppDataAction: { chatDataAction: { createMessageAction: { message: {
    text: 'Hi, Cymbal at your service. I help you manage your calendar ' +
          'from Google Chat. Take a look at your schedule today by typing ' +
          '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. ' +
          'To learn what else I can do, type `/help`.'
  }}}}};
}

L'exemple de code renvoie le message texte suivant :

Exemple de message d'intégration.

Mettre à jour un message

Les applications de chat peuvent également modifier les messages qu'elles envoient. Par exemple, une application Chat peut mettre à jour un message après qu'un utilisateur a envoyé une boîte de dialogue ou cliqué sur un bouton d'une fiche dans un message.

Pour mettre à jour un message d'application Chat en réponse à une interaction, renvoyez DataActions avec un UpdateMessageAction :

{
  "hostAppDataAction": {
    "chatDataAction": {
      "updateMessageAction": {
        "message": <var>MESSAGE</var>
      }
    }
  }
}

Remplacez MESSAGE par une ressource Message de l'API Chat.

Les applications Chat peuvent également modifier un message envoyé par un utilisateur pour y joindre une fiche d'aperçu de lien à l'aide de updateInlinePreviewAction. Pour en savoir plus, consultez Liens d'aperçu.

Répondre de manière asynchrone à l'aide de l'API Google Chat

Au lieu de renvoyer une action de manière synchrone, les applications Chat peuvent avoir besoin d'appeler l'API Google Chat pour répondre à une interaction ou envoyer des messages proactifs. Par exemple, les applications Chat doivent appeler l'API Google Chat pour effectuer l'une des opérations suivantes :

  • Répondez à une interaction après 30 secondes (par exemple, après avoir terminé une tâche de longue durée).
  • Envoyez des messages selon une programmation ou des notifications concernant les modifications apportées à des ressources externes.
  • effectuer des tâches en dehors de l'espace où l'interaction a eu lieu ;
  • Effectuez dans Chat des tâches qui ne sont pas disponibles en tant qu'actions synchrones, comme lister des espaces ou ajouter des membres à un espace.
  • Effectuer des tâches pour le compte d'un utilisateur Chat (ce qui nécessite l'authentification de l'utilisateur).

Lorsque vous répondez à une interaction après 30 secondes, pour éviter qu'un message d'erreur visible par l'utilisateur indiquant que votre application Chat ne répond pas s'affiche, vous devez accuser réception de l'objet d'événement dans les 30 secondes en renvoyant une réponse vide :

Node.js

async function onEvent(req, res) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return res.send({});
};

Python

def on_event(event) -> dict:
  # Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return {}

Java

public String onEvent(JsonNode event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return "{}";
}

Apps Script

function onEvent(event) {
  // Trigger asynchronous job that will respond using the Google Chat API.
  ...

  // Respond with an empty response to the Google Chat platform.
  return null;
}

Pour envoyer un message à l'aide de l'API Chat, configurez l'authentification et appelez la méthode spaces.messages.create. Pour connaître la procédure à suivre, consultez Envoyer un message. Pour obtenir des guides sur l'utilisation d'autres méthodes de l'API Chat, consultez la présentation de l'API Chat.

Applications de chat qui ne sont pas des modules complémentaires : recevoir des interactions utilisateur et y répondre

Les applications de chat qui ne sont pas des modules complémentaires Google Workspace reçoivent des événements d'interaction de l'API Chat (Event) au lieu d'objets d'événement de module complémentaire Google Workspace (EventObject) et répondent en renvoyant une ressource Message au lieu d'une action.

Pour migrer une application Chat qui n'est pas un module complémentaire vers le framework de modules complémentaires Google Workspace, consultez Convertir une application Google Chat en module complémentaire Google Workspace.

Types d'événements d'interaction

Pour chaque type d'interaction utilisateur, Google Chat envoie à une application Chat qui n'est pas un module complémentaire un objet Event dont le type est représenté par le champ eventType :

Interaction de l'utilisateur eventType Réponse typique d'une application Chat qui n'est pas un module complémentaire
Un utilisateur envoie un message à une application Chat. Par exemple, il mentionne l'application Chat ou utilise une commande à barre oblique. MESSAGE L'application Chat répond en fonction du contenu du message. Par exemple, une application Chat répond à la commande à barre oblique /about par un message expliquant les tâches que l'application Chat peut effectuer.
Un utilisateur ajoute une application Chat à un espace. ADDED_TO_SPACE L'application Chat envoie un message d'intégration qui explique ce qu'elle fait et comment les utilisateurs de l'espace peuvent interagir avec elle.
Un utilisateur supprime une application Chat d'un espace. REMOVED_FROM_SPACE L'application Chat supprime toutes les notifications entrantes configurées pour l'espace (par exemple, la suppression d'un webhook) et libère de l'espace de stockage interne.
Un utilisateur clique sur un bouton d'une fiche à partir d'un message de l'application Chat, d'une boîte de dialogue ou d'une page d'accueil. CARD_CLICKED L'application Chat traite et stocke les données envoyées par l'utilisateur, ou renvoie une autre fiche.
Un utilisateur ouvre la page d'accueil de l'application Chat en cliquant sur l'onglet Accueil dans un message privé. APP_HOME L'application Chat renvoie une fiche statique ou interactive depuis la page d'accueil.
Un utilisateur envoie un formulaire depuis la page d'accueil de l'application Chat. SUBMIT_FORM L'application Chat traite et stocke les données envoyées par l'utilisateur, ou renvoie une autre fiche.
Un utilisateur appelle une commande à l'aide d'une commande rapide. APP_COMMAND L'application Chat répond en fonction de la commande qui a été appelée. Par exemple, une application Chat répond à la commande About par un message expliquant les tâches qu'elle peut effectuer.

Pour afficher tous les événements d'interaction compatibles et des exemples de charges utiles JSON, consultez Types d'événements d'interaction des applications Chat et la documentation de référence EventType.

Événements d'interaction provenant des boîtes de dialogue

Si votre application Chat qui n'est pas un module complémentaire ouvre des boîtes de dialogue, l'événement d'interaction contient les informations supplémentaires suivantes que vous pouvez utiliser pour traiter une réponse :

  • Le champ isDialogEvent est défini sur true.
  • DialogEventType (REQUEST_DIALOG, SUBMIT_DIALOG ou CANCEL_DIALOG) indique si l'interaction déclenche l'ouverture d'une boîte de dialogue, envoie des informations à partir d'une boîte de dialogue ou ferme une boîte de dialogue.

Configurer une application Chat qui n'est pas un module complémentaire pour recevoir des événements d'interaction

  1. Dans la console Google Cloud, accédez à la page Configuration de l'API Chat :

    Accéder à la page de configuration de l'API Chat

  2. Sous Fonctionnalités interactives, décochez Créer cette application de chat en tant que module complémentaire Google Workspace, puis configurez Fonctionnalité, un point de terminaison Paramètres de connexion unique (URL du point de terminaison HTTP, Apps Script, nom du sujet Cloud Pub/Sub ou Dialogflow), Commandes, Prompts de démarrage, Aperçus des liens et Visibilité.

  3. Cliquez sur Enregistrer.

Répondre à un message dans une application de chat qui n'est pas un module complémentaire

Pour répondre de manière synchrone dans une application Chat qui n'est pas un module complémentaire, renvoyez directement un objet Message. L'exemple suivant répond à un événement d'interaction ADDED_TO_SPACE par un message texte :

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The event object from Chat API.
 * @param {Object} res The response object from the Chat app.
 */
exports.cymbalApp = function cymbalApp(req, res) {
  // Send an onboarding message when added to a Chat space
  if (req.body.type === 'ADDED_TO_SPACE') {
    res.json({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
        'from Google Chat. Take a look at your schedule today by typing ' +
        '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
        'learn what else I can do, type `/help`.'
    });
  }
};

Python

from flask import Flask, request, json
app = Flask(__name__)

@app.route('/', methods=['POST'])
def cymbal_app():
  """Sends an onboarding message when the Chat app is added to a space.

  Returns:
    Mapping[str, Any]: The response object from the Chat app.
  """
  event = request.get_json()
  if event['type'] == 'ADDED_TO_SPACE':
    return json.jsonify({
      'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
      'from Google Chat. Take a look at your schedule today by typing ' +
      '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To ' +
      'learn what else I can do, type `/help`.'
    })
  return json.jsonify({})

Java

@SpringBootApplication
@RestController
public class App {
  public static void main(String[] args) {
    SpringApplication.run(App.class, args);
  }

  /*
   * Sends an onboarding message when the Chat app is added to a space.
   *
   * @return The response object from the Chat app.
   */
  @PostMapping("/")
  @ResponseBody
  public Message onEvent(@RequestBody JsonNode event) {
    switch (event.get("type").asText()) {
      case "ADDED_TO_SPACE":
        return new Message().setText(
          "Hi, Cymbal at your service. I help you manage your calendar " +
          "from Google Chat. Take a look at your schedule today by typing " +
          "`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. " +
          "To learn what else I can do, type `/help`.");
      default:
        return new Message();
    }
  }
}

Apps Script

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} event The event object from Chat API.
 * @return {Object} Response from the Chat app.
 */
function onAddToSpace(event) {
  return {
    'text': 'Hi, Cymbal at your service. I help you manage your calendar ' +
      'from Google Chat. Take a look at your schedule today by typing ' +
      '`/checkCalendar`, or schedule a meeting with `/scheduleMeeting`. To learn ' +
      'what else I can do, type `/help`.'
  };
}