Guida al concetto di Accedi con Google (Dialogflow)

Accedi con Google (GSI) per l'assistente offre il collegamento più fluido possibile agli utenti 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, riceveremo il nome e l'indirizzo email dell'utente e immagine del profilo. L'Azione può quindi usare queste informazioni per verificare se utente dispone di un Account Google nel tuo sistema. In caso contrario, l'azione chiede all'utente vuole creare un nuovo account nel tuo sistema in base ai propri dati Google, le informazioni del tuo profilo.

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

  • Non disponi di un sistema di autenticazione esistente e/o prevedi tutti i tuoi ad avere un Account Google. Ad esempio, se l'Azione è specificamente che hanno come target l'assistente, puoi aspettarti che tutti i tuoi utenti abbiano Google .
  • Disponi già di un sistema di autenticazione e vuoi collegare solo gli utenti che hanno eseguito l'accesso al sistema utilizzando i propri Account Google.

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

Termini chiave

Prima di leggere il funzionamento di GSI, acquisisci familiarità con i seguenti termini:

  • Token ID Google:un'asserzione firmata dell'identità di un utente che contiene Le informazioni di base del profilo Google di un utente (nome, indirizzo email e immagine del profilo). 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"
}
  • Intento di supporto per l'accesso all'account:un intent helper a cui chiami richiedere un flusso di collegamento dell'account dall'assistente. Per ulteriori informazioni, consulta Accesso all'account.
    • Stringa di contesto:una stringa personalizzata che aggiungi all'account. intent di aiuto per l'accesso che indichi all'utente perché è necessario effettuare il collegamento il proprio account.

Come funziona

Il flusso di base per GSI è il seguente:

  1. L'azione chiede all'utente il consenso per accedere al suo profilo Google.
  2. Dopo che l'utente dà il consenso, l'azione riceve un token ID Google che contiene le informazioni del profilo Google dell'utente.
  3. Convalida e decodifica il token per leggere i contenuti del profilo. Se utilizzi la libreria client Actions on Google per Node.js o la libreria client Java, convalida e decodifica il token per te.
  4. L'Azione utilizza questo token per verificare se il profilo Google dell'utente nel tuo sistema.

    1. In questo caso, significa che l'utente ha già effettuato l'accesso al tuo sistema tramite Account Google L'utente può continuare la conversazione con Assistente con la sua identità collegata al suo Account Google.
    2. In caso contrario, l'utente può creare un nuovo account nel tuo sistema utilizzando le informazioni contenute nel token dell'ID Google. L'utente può quindi continuare la conversazione con l'assistente con il suo nuovo account collegato.

Flussi di Accedi con Google

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

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

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

In questo caso, chiami l'intent helper actions.intent.SIGN_IN con un la stringa di contesto che personalizzi. Questo intent chiede all'utente l'autorizzazione per accedere alle informazioni del proprio profilo Google.

Dopo che l'utente ha dato il consenso, l'assistente invia una richiesta contenente informazioni del profilo di user@gmail.com. In questo caso, le informazioni contenuto nel token ID Google di user@gmail.com corrisponde a un account in il tuo sistema, in modo che l'identità dell'utente nell'azione venga 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 tuo sistema:

In questo caso, le informazioni contenute nel token dell'ID Google per user@gmail.com non corrisponde a un account nel tuo sistema, pertanto l'assistente chiede all'utente se vuole creare un nuovo account. L'utente può completare il processo di creazione dell'account tramite comandi vocali anziché trasferirlo su un dispositivo schermato.

Quando l'utente accetta di creare un account, il servizio utilizza le informazioni 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 sia collegato al suo nuovo Account Google.

In questo caso, l'utente non ha un ordine abituale perché non ha esperienza di servizio, quindi l'Azione chiede che cosa vogliono ordinare. Tu Può anche chiedere all'utente se vuole impostare l'ordine più recente come al solito.