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 applicazioni associate per collegare gli account, autorizzare l'accesso ai dati, visualizzare dati aggiuntivi o configurare le preferenze utente.

Richiedere la configurazione dell'app di Chat a un utente

Se il completamento di una richiesta richiede una configurazione aggiuntiva che non può essere completata direttamente nell'app di Chat, restituisci all'utente un URL di configurazione come parte di una normale risposta o presentalo privatamente nel seguente formato:

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

Questo indica a Google Chat di presentare all'utente un prompt privato, dove CONFIGURATION_URL è un link che l'utente può visitare per ulteriori autenticazioni, autorizzazioni o configurazioni. Una risposta REQUEST_CONFIG si escludono a vicenda con un messaggio di risposta regolare. 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 segnala a Google Chat che la richiesta di configurazione è stata soddisfatta.

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

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. Converti il messaggio originale in pubblico, rendendolo visibile agli altri membri dello spazio.
  3. Invia di nuovo il messaggio originale alla stessa app Chat.

La visita a un configCompleteRedirectUrl interessa un solo messaggio dell'utente. Se un utente ha provato a inviare più volte 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 rimangono invariati.

Quando un evento di interazione MESSAGE viene inviato di nuovo in questo modo, dovrebbe essere identico all'evento originale. Tuttavia, esistono alcune situazioni in cui gli eventi di interazione MESSAGE possono essere diversi. Ad esempio, quando un messaggio menziona sia l'app di Chat A che l'app di Chat B, l'utente può modificarlo se l'app di Chat A risponde con un messaggio regolare prima di eseguire l'autenticazione con l'app di 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 la funzionalità Accedi con Google.

Utilizza il token di identità emesso durante l'accesso per ottenere lo User-ID. L'attestazione 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, è possibile forzarli. Per forzare il valore della dichiarazione sub a un users/{user} di Google Chat, anteponi users/ al valore. Ad esempio, il valore della rivendicazione di 123 equivale al nome utente users/123 nei messaggi inviati all'app Chat.