Envoyer des messages Google Chat

Cette page explique comment les applications Google Chat peuvent envoyer des messages pour répondre aux interactions des utilisateurs.

  • Formulaire de contact à partir d'une commande à barre oblique.

    Une application Chat répond à une commande à barre oblique avec un message texte et un bouton.

  • Formulaire de contact dans une boîte de dialogue.

    Une application Chat ouvre une boîte de dialogue dans laquelle les utilisateurs peuvent saisir des informations.

  • Message de carte avec des widgets de saisie de formulaire.s

    Une application Chat envoie un message contenant du texte et une fiche interactive.

Prérequis

HTTP

Module complémentaire Google Workspace qui étend Google Chat. Pour en créer un, suivez le guide de démarrage rapide HTTP.

Apps Script

Module complémentaire Google Workspace qui étend Google Chat. Pour en créer un, suivez le guide de démarrage rapide Apps Script.

Élaborer le message

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

  • Texte contenant des liens hypertextes, des @mentions et des emoji.
  • Une ou plusieurs fiches, qui peuvent apparaître dans un message ou s'ouvrir dans une nouvelle fenêtre sous forme de boîte de dialogue.
  • Un ou plusieurs widgets accessoires, qui sont des boutons qui s'affichent après tout texte ou fiche dans un message.

Pour en savoir plus sur la conception de messages, consultez la documentation suivante de l'API Google Chat :

Répondre par un message

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

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

Sinon, les applications Chat peuvent envoyer des messages de manière proactive en appelant l'API Google Chat.

Pour répondre par un message, renvoyez l'action DataActions avec un CreateMessageAction objet :

{ "hostAppDataAction": { "chatDataAction": { "createMessageAction": {
  "message": MESSAGE
}}}

Remplacez MESSAGE par une Message ressource de l'API Chat. Pour en savoir plus sur le fonctionnement des actions, consultez Actions Chat.

Dans l'exemple suivant, une application Chat crée et envoie un message texte chaque fois qu'elle est ajoutée à un espace. Pour envoyer un message texte lorsqu'un utilisateur ajoute votre application Chat à un espace, votre application Chat répond au déclencheur Ajouté à l'espace en renvoyant l'action DataActions :

Node.js

/**
 * Sends an onboarding message when the Chat app is added to a space.
 *
 * @param {Object} req The request object from Google Workspace add-on.
 * @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`."
              ));
            } });
          } });
        } });
      } };
    }
  }
}

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 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.

Pour obtenir d'autres exemples de réponse par un message, consultez les guides suivants :

Mettre à jour un message

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

Pour mettre à jour un message d'application Chat, renvoyez l'action DataActions avec un UpdateMessageAction, comme illustré dans l'exemple suivant :

{ "hostAppDataAction": { "chatDataAction": { "updateMessageAction": {
  "message": MESSAGE
}}}}

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

Pour en savoir plus sur le fonctionnement des actions, consultez Actions Chat.

Les applications Chat peuvent également mettre à jour un message d'un utilisateur pour renvoyer un aperçu d'un lien qu'il a envoyé. Pour en savoir plus, consultez Aperçu des liens dans les messages Google Chat.

Répondre aux interactions ou envoyer des messages proactifs à l'aide de l'API Google Chat

Au lieu de renvoyer une action de module complémentaire, les applications Chat peuvent avoir besoin d'utiliser l'API Google Chat pour répondre à une interaction. Par exemple, les applications Chat doivent appeler l'API Google Chat pour effectuer l'une des opérations suivantes :

  • Envoyer des messages selon un calendrier ou concernant des modifications apportées à des ressources externes. Par exemple, des notifications concernant un nouveau problème ou une nouvelle demande.
  • Répondre plus de 30 secondes après l'interaction. Par exemple, pour répondre par un message après avoir terminé une tâche de longue durée.
  • Envoyer un message en dehors de l'espace où l'interaction a eu lieu.
  • Envoyer un message au nom d'un utilisateur Chat.

Pour envoyer un message à l'aide de l'API Chat, vous devez configurer l'authentification et appeler la méthode create() sur la ressource Message. Pour connaître la procédure à suivre, consultez Envoyer un message à l'aide de l'API Google Chat.