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é avec l'application Chat. 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é.


Créez et prévisualisez des fiches avec Card Builder.

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 reçoit cet événement, une instance JSON de RenderActions est renvoyée avec la navigation push_card.

L'exemple suivant illustre un événement:

@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 "Card v2" representing App Home.

L'exemple suivant montre une fiche configurée pour inclure un bouton d'accès à la documentation:

{
  action: {
    navigations: [
      {
        push_card: {
          sections: [
            {
              widgets: [
                {
                  buttonList: {
                    buttons: [
                      {
                        text: "Open documentation",
                        onClick: {
                          openLink: {
                            url: "https://developers.google.com/chat"
                          }
                        }
                      }
                    ]
                  }
                }
              ]
            }
          ]
        }
      }
    ]
  }
}

Apps Script ;

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

// "onAppHome" is the pre-defined name of the callback that the Chat servers
// execute.
function onAppHome() {
  return {
    action: {
      navigations: [
        {
          push_card: 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 update_card.

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 la documentation de 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': [{
                'update_card': get_update_card
              }]
            }
          }
        }

def get_update_card:
  // Return "Card v2" representing App Home.
  ...

Apps Script ;

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

function getCard() {
  // Return "Card v2" representing App Home.
  ...
}