Collegare un'app di chat ad altri servizi e strumenti

In questa pagina viene descritto come collegare un'app Google Chat a un servizio o uno strumento esterno a Google Chat. Sebbene le app di chat siano autonome, spesso funzionano insieme ad altri sistemi e richiedono alle applicazioni companion di collegare gli account, autorizzare l'accesso ai dati, visualizzare dati aggiuntivi o configurare le preferenze degli utenti.

Richiedere la configurazione dell'app di chat a un utente

Se per completare una richiesta è necessaria una configurazione aggiuntiva che non può essere completata direttamente nell'app Chat, restituisci all'utente un URL di configurazione come parte di una normale risposta o presentalo privatamente nel seguente modulo:

{
  "actionResponse": {
    "type": "REQUEST_CONFIG",
    "url": "CONFIGURATION_URL"
  }
}

Questo indica a Google Chat di presentare all'utente un prompt privato, in cui CONFIGURATION_URL è un link da visitare per ulteriori autenticazione, autorizzazioni o configurazione. Una risposta REQUEST_CONFIG si escluda a vicenda con un messaggio di risposta regolare. Gli attributi di testo, schede o altri attributi vengono ignorati.

Completa la richiesta di configurazione

Ogni evento di interazione MESSAGE ricevuto dall'app di chat include anche un parametro configCompleteRedirectUrl. Questo URL deve essere codificato nell'URL di configurazione da utilizzare al termine del processo. Il reindirizzamento a questo URL indica a Google Chat che la richiesta di configurazione è stata soddisfatta.

All'avvio dell'app di chat, il flusso dipende dal messaggio specifico ricevuto. In risposta a un messaggio come @app help, un'app Chat deve rispondere con un messaggio senza richiedere un'ulteriore configurazione.

Quando un utente viene reindirizzato correttamente alla configCompleteRedirectUrl fornita nel messaggio originale, Google Chat esegue i seguenti passaggi:

  1. Cancellare il prompt mostrato all'utente che ha avviato l'operazione.
  2. Convertire il messaggio originale in pubblico, rendendolo visibile agli altri membri dello spazio.
  3. Invia il messaggio originale alla stessa app di chat una seconda volta.

La visita di un configCompleteRedirectUrl interessa un solo messaggio dell'utente. Se un utente ha provato a inviare più messaggi a un'app di chat e, di conseguenza, ha ricevuto più richieste, fare clic su un messaggio specifico e completare il processo di autenticazione e configurazione interessa solo quel messaggio specifico. Gli altri messaggi non vengono modificati.

Quando un evento di interazione MESSAGE viene inviato di nuovo in questo modo, deve essere identico all'evento originale; tuttavia, in alcune situazioni gli eventi di interazione MESSAGE possono differire. Ad esempio, quando un messaggio menziona sia l'app di chat A che l'app di chat B, l'utente è in grado di modificarlo se l'app di chat A risponde con un normale messaggio prima di eseguire l'autenticazione con l'app Chat B. In questo caso, l'app Chat B riceve il testo del messaggio modificato dopo che l'utente ha completato l'autenticazione e la configurazione.

Autenticare l'utente di Chat al di fuori di Chat

In alcuni casi, ad esempio per richiedere l'autorizzazione OAuth per un'API, la tua app deve collegarsi a un URL esterno a Chat mantenendo l'identità dell'utente. Il modo migliore per identificare l'utente in questi casi è proteggere l'app di destinazione con Accedi con Google.

Utilizza il token di identità emesso durante l'accesso per ottenere lo User-ID. La rivendicazione sub contiene l'ID univoco dell'utente e può essere correlata all'ID utente di Google Chat.

Sebbene i due ID non siano esattamente identici, possono essere forzati. Per forzare il valore della rivendicazione sub in una users/{user} di Google Chat, anteponi users/ al valore. Ad esempio, il valore della rivendicazione 123 equivale al nome utente users/123 nei messaggi inviati alla tua app Chat.

  • L'esempio di app MyProfile utilizza il token di identità della risposta di Accedi con Google per identificare l'utente.