Guida concettuale di Accedi con Google

Accedi con Google per l'assistente offre agli utenti l'esperienza di collegamento più fluida ed è il flusso più semplice da implementare per gli sviluppatori. Con GSI, l'Azione può richiedere l'accesso al profilo Google dell'utente durante una conversazione e, se l'utente acconsente, ricevere il nome, l'indirizzo email e l'immagine del profilo dell'utente. L'Azione può quindi utilizzare queste informazioni per verificare se l'utente ha un Account Google nel sistema. In caso contrario, l'Azione chiede all'utente se vuole creare un nuovo account nel sistema in base alle informazioni del suo profilo Google.

GSI è la soluzione consigliata per il collegamento degli account nei casi seguenti:

  • Non disponi di un sistema di autenticazione esistente e/o ti aspetti che tutti i tuoi utenti abbiano un Account Google. Ad esempio, se l'Azione ha come target specifico l'Assistente, puoi aspettarti che tutti i tuoi utenti abbiano un Account Google.
  • Disponi di un sistema di autenticazione esistente e vuoi collegare solo gli utenti che hanno eseguito l'accesso al tuo sistema utilizzando i propri Account Google.

Per verificare che GSI sia la soluzione giusta per te, consulta la pagina Scegliere il tipo di collegamento dell'account.

Termini chiave

Prima di leggere come funziona GSI, familiarizza con i seguenti termini:

  • Token ID Google: un'asserzione firmata dell'identità di un utente contenente le informazioni di base del profilo Google (nome, indirizzo email e immagine del profilo dell'utente). Un token ID Google è un token web JSON (JWT).

    Di seguito è riportato un esempio di token decodificato:

{
  "sub": 1234567890,        // The unique ID of the user's Google Account
  "iss": "https://accounts.google.com",        // The token's issuer
  "aud": "123-abc.apps.googleusercontent.com", // Client ID assigned to your Actions project
  "iat": 233366400,         // Unix timestamp of the token's creation time
  "exp": 233370000,         // Unix timestamp of the token's expiration time
  "name": "Jan Jansen",
  "given_name": "Jan",
  "family_name": "Jansen",
  "email": "jan@gmail.com", // If present, the user's email address
  "locale": "en_US"
}
  • user.verificationStatus: una proprietà impostata dal sistema per indicare se la sessione corrente ha un utente verificato.

  • user.accountLinkingStatus: una proprietà impostata dal sistema per indicare se l'utente della sessione corrente ha un'identità collegata.

  • Scena del sistema di collegamento degli account: una scena predefinita che implementa il flusso di conferma per il collegamento dell'account e può essere personalizzata per casi d'uso specifici.

Come funziona

Di seguito è riportato il flusso fondamentale per GSI:

  1. L'Azione chiede all'utente il consenso per accedere al proprio profilo Google.
  2. Dopo che l'utente ha dato il consenso, l'Azione riceve un token ID Google contenente informazioni del profilo Google dell'utente.
  3. Convalida e decodifica il token per leggere i contenuti del profilo. Se utilizzi la libreria Actions on Google Fulfillment per Node.js, il token convalida e decodifica il token per te.
  4. L'Azione utilizza questo token per verificare se nel sistema sono presenti informazioni del profilo Google dell'utente.

    1. In questo caso, l'utente ha già eseguito l'accesso al sistema con il proprio Account Google. L'utente può continuare la conversazione con l'assistente collegando la propria identità all'Account Google.
    2. In caso contrario, l'utente può creare un nuovo account nel tuo sistema con le informazioni contenute nel token ID Google. L'utente può quindi continuare la conversazione con l'assistente con il nuovo account collegato.

Flussi di Accedi con Google

Questa sezione descrive i vari flussi che possono essere eseguiti con Accedi con Google.

Flusso 1: le informazioni dell'utente sono presenti nel tuo sistema

Il seguente diagramma mostra il flusso end-to-end che si verifica con GSI quando le informazioni dell'utente esistono già nel sistema:

In questo caso, passerai alla scena del sistema di collegamento dell'account e fornisci una motivazione personalizzata. Questa scena chiede all'utente l'autorizzazione ad accedere alle informazioni del suo profilo Google.

Dopo che l'utente ha dato il consenso, l'assistente invia una richiesta contenente le informazioni del profilo per user@gmail.com. In questo caso, le informazioni contenute nel token ID Google per user@gmail.com corrispondono a un account nel tuo sistema, quindi l'identità dell'utente nell'Azione viene collegata automaticamente a quell'account. Il webhook può quindi leggere l'ordine abituale dell'utente da un database e rispondere di conseguenza.

Flusso 2: le informazioni dell'utente non esistono nel sistema

Il seguente diagramma mostra il flusso end-to-end che si verifica con GSI quando le informazioni dell'utente non esistono nel sistema:

In questo caso, le informazioni contenute nel token ID Google per user@gmail.com non corrispondono a un account nel tuo sistema, quindi l'assistente chiede all'utente se vuole creare un nuovo account. L'utente può completare la procedura di creazione dell'account con la voce anziché eseguire il trasferimento su un dispositivo filtrato.

Quando l'utente accetta di creare un account, il servizio utilizza le informazioni contenute nel token ID (nome e indirizzo email dell'utente) per creare un account per l'utente. Una volta creato l'account, l'identità dell'utente nell'Azione viene collegata al suo nuovo Account Google.

In questo caso, l'utente non ha un ordine abituale perché non ha mai utilizzato il servizio, pertanto l'Azione chiede cosa vuole ordinare. Puoi anche chiedere all'utente se vuole impostare l'ordine più recente come ordine abituale.