Inviare un messaggio nella scheda Home dell'app per un'app Google Chat

In questa pagina viene spiegato come creare e inviare un messaggio della scheda Home dell'app per l'app Chat. La home page dell'app è un messaggio di scheda personalizzabile che un'app di Chat invia a un utente quando apre un messaggio diretto con l'app Chat.

Scheda della home page dell'app con due messaggi.

Ad esempio, puoi configurare il messaggio della scheda Home dell'app in modo che includa suggerimenti per l'interazione con l'app Chat utilizzando i comandi slash. Per gli utenti finali, la home page dell'app è disponibile nel messaggio diretto dell'app di Chat solo se lo sviluppatore dell'app attiva la funzionalità.


Utilizza Card Builder per progettare e visualizzare l'anteprima dei messaggi delle schede JSON per le app di chat:

Apri Card Builder

Prerequisiti

Python

Apps Script

Configura nella console Google Cloud

Python

  1. Nella console Google Cloud, vai a Menu > Altri prodotti > Google Workspace > Libreria prodotti > API Google Chat.

    Vai all'API Google Chat

  2. Fai clic su Gestisci, quindi sulla scheda Configurazione.

  3. Attiva Supporta la home page dell'app.

  4. Seleziona la casella di controllo Support App Home (Supporto app home).

  5. Nel campo URL della home page dell'app, aggiungi un URL. Questo valore di solito è lo stesso URL dell'URL dell'app. Questo URL viene chiamato per gli eventi APP_HOME.

  6. Fai clic su Salva.

Apps Script

  1. Nella console Google Cloud, vai a Menu > Altri prodotti > Google Workspace > Libreria prodotti > API Google Chat.

    Vai all'API Google Chat

  2. Fai clic su Gestisci, quindi sulla scheda Configurazione.

  3. Seleziona la casella di controllo Support App Home (Supporto app home).

  4. Fai clic su Salva.

Configura l'app Chat

Configura l'app Chat in modo che invii un nuovo messaggio di scheda per la home page dell'app.

Python

Quando un utente apre un messaggio diretto da un'app di Chat, viene inviato un evento APP_HOME all'app Chat. Quando un'app di Chat riceve questo evento, viene restituita un'istanza JSON di RenderActions con la navigazione 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

In questo esempio viene inviato un messaggio relativo alle schede restituendo un JSON della scheda. Puoi anche utilizzare il servizio di schede di Apps Script.

Implementa una funzione onAppHome per restituire un'istanza JSON di RenderActions con la navigazione 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"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Aggiornare il messaggio della scheda Home dell'app

Il messaggio della scheda Home dell'app può essere aggiornato quando un utente invia informazioni in un messaggio in scheda o chiude una finestra di dialogo. Ad esempio, il messaggio iniziale della scheda della home page dell'app è un messaggio di benvenuto che chiede a un utente di compilare un modulo con informazioni. Dopo che l'utente compila il modulo, viene inviato un messaggio aggiornato della scheda della home page dell'app. L'aggiornamento deve essere restituito con un'istanza di RenderActions contenente una navigazione updateCard.

Python

Per le app HTTP, l'aggiornamento del messaggio della scheda Home dell'app è simile a quello per Informazioni sul processo inserite dagli utenti, ma devi restituire RenderActions. invokedFunction rappresenta il nome della funzione richiamata associata al widget Card. Per saperne di più, consulta CommonEventObject. Nell'esempio seguente, submitForm mostra che l'utente ha inviato i dati del modulo:

@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

In questo esempio viene inviato un messaggio relativo alle schede restituendo un JSON della scheda. Puoi anche utilizzare il servizio di schede di 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"
                    }
                  }
                }
              ]
            }
          }
        ]
      }
    ]
  };
}

Limitazioni

In generale, navigation non è disponibile per le app di chat. Non puoi restituire una pila di carte. Per le app di chat sono disponibili solo pushCard (per la risposta iniziale) e updateCard (per gli aggiornamenti).