Envoyer un message sur la fiche d'accueil d'une application Google Chat

Cette page explique comment créer et envoyer un message de fiche d'accueil pour votre application Chat. La page d'accueil de l'application est une fiche personnalisable qu'une application Chat envoie à un utilisateur lorsqu'il ouvre un message privé dans l'application Chat.

Fiche d'accueil de l'application avec deux messages.

Par exemple, vous pouvez configurer le message de la fiche d'accueil de l'application pour inclure des conseils pour interagir avec l'application Chat à l'aide de commandes à barre oblique. Pour les utilisateurs finaux, la page d'accueil de l'application n'est disponible dans le message privé d'une application Chat que si le développeur de l'application active la fonctionnalité.


Utilisez Card Builder pour concevoir et prévisualiser les messages de fiche JSON pour les applications Chat:

Ouvrez l'outil de création de cartes

Prérequis

Python

Apps Script ;

Configurer dans la console Google Cloud

Python

  1. Dans la console Google Cloud, accédez à Menu > Autres produits > Google Workspace > Bibliothèque de produits > API Google Chat.

    Accéder à l'API Google Chat

  2. Cliquez sur Manage (Gérer), puis sur l'onglet Configuration.

  3. Activez Support App Home (Accueil de l'application d'assistance).

  4. Cochez la case Support App Home (Accueil de l'application d'assistance).

  5. Dans le champ App Home URL (URL de la page d'accueil de l'application), ajoutez une URL. Cette valeur est généralement la même URL que l'URL de l'application. Cette URL est appelée pour les événements APP_HOME.

  6. Cliquez sur Enregistrer.

Apps Script ;

  1. Dans la console Google Cloud, accédez à Menu > Autres produits > Google Workspace > Bibliothèque de produits > API Google Chat.

    Accéder à l'API Google Chat

  2. Cliquez sur Manage (Gérer), puis sur l'onglet Configuration.

  3. Cochez la case Support App Home (Accueil de l'application d'assistance).

  4. Cliquez sur Enregistrer.

Configurer votre application Chat

Configurez votre application Chat pour qu'elle envoie un nouveau message de fiche pour la page d'accueil de l'application.

Python

Lorsqu'un utilisateur ouvre un message privé à partir d'une application Chat, un événement APP_HOME est envoyé à cette application. Lorsqu'une application Chat reçoit cet événement, une instance JSON de RenderActions est renvoyée avec la navigation pushCard.

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'APP_HOME':
    return get_app_home_card()

def get_app_home_card():
  return {
    "action": {
      "navigations": [
        {
          "pushCard": {
            "sections": [
              {
                "widgets": [
                  {
                    "buttonList": {
                      "buttons": [
                        {
                          "text": "Open documentation",
                          "onClick": {
                            "openLink": {
                              "url": "https://developers.google.com/chat"
                            }
                          }
                        }
                      ]
                    }
                  }
                ]
              }
            ]
          }
        }
      ]
    }
  }

Apps Script ;

Cet exemple envoie un message de carte en renvoyant card JSON. Vous pouvez également utiliser le service de cartes Apps Script.

Implémentez une fonction onAppHome pour renvoyer une instance JSON de RenderActions avec la navigation pushCard:

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          pushCard: getCard()
        }
      ]
    }
  };
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Mettre à jour un message sur la carte d'accueil de l'application

Le message de la fiche d'accueil de l'application peut être mis à jour lorsqu'un utilisateur envoie des informations dans un message ou ferme une boîte de dialogue. Par exemple, le message initial de la carte d'accueil de l'application est un message de bienvenue qui demande à un utilisateur de remplir un formulaire avec des informations. Une fois que l'utilisateur a rempli le formulaire, un message de carte d'accueil de l'application mis à jour est envoyé. La mise à jour doit être renvoyée avec une instance de RenderActions contenant une navigation updateCard.

Python

Pour les applications HTTP, la mise à jour du message de la carte d'accueil de l'application est semblable à la procédure Process information inputted by users (Traiter les informations saisies par les utilisateurs), mais vous devez renvoyer RenderActions. invokedFunction représente le nom de la fonction appelée associée au widget Card. Pour en savoir plus, consultez CommonEventObject. Dans l'exemple suivant, submitForm indique que l'utilisateur a envoyé des données de formulaire:

@app.route('/', methods=['POST'])
def on_event():
  event = request.get_json()
  chat = event.get('chat')
  if chat is not None:
    return handle_chat_event(event)

def handle_chat_event(event):
  if event['chat'].get('type') == 'SUBMIT_FORM':
    event_object = event.get('commonEventObject')
    if event_object is not None:
      // Forms
      if 'submitForm' == event_object.get('invokedFunction'):
        return {
          'render_actions': {
            'action': {
              'navigations': [{
                'updateCard': get_update_card()
              }]
            }
          }
        }

def get_update_card():
  return {
      "action": {
          "navigations": [{
              "pushCard": {
                  "sections": [{
                      "widgets": [{
                          "buttonList": {
                              "buttons": [{
                                  "text": "Open documentation",
                                  "onClick": {
                                      "openLink": {
                                          "url": "https://developers.google.com/chat"
                                      }
                                  },
                              }]
                          }
                      }]
                  }]
              }
          }]
      }
  }

Apps Script ;

Cet exemple envoie un message de carte en renvoyant card JSON. Vous pouvez également utiliser le service de cartes Apps Script.

// Called from elsewhere (i.e. on button press).
function updateAppHomeCard(event) {
  return {
    render_actions: {
      action: {
        navigations: [
          {
            updateCard: getCard()
          }
        ]
      }
    }
  }
}

function getCard() {
  return {
    sections: [
      {
        widgets: [
          {
            buttonList: {
              buttons: [
                {
                  text: "Open documentation",
                  onClick: {
                    openLink: {
                      url: "https://developers.google.com/chat"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Limites

En général, navigation n'est pas disponible pour les applications Chat. Vous ne pouvez pas renvoyer une pile de cartes. Seuls pushCard (pour la réponse initiale) et updateCard (pour les mises à jour) sont disponibles pour les applications Chat.