Guía de conceptos de Acceso con Google

El Acceso con Google (GSI) para Asistente proporciona la vinculación más fluida. para los usuarios y es el flujo más fácil de implementar por parte de los desarrolladores. Con GSI, tu acción puede solicitar acceso al perfil de Google de tu usuario durante una conversación y, si el usuario da su consentimiento, recibir su nombre, dirección de correo electrónico y tu foto de perfil. Luego, tu acción puede usar esta información para verificar si el elemento usuario tiene una Cuenta de Google en tu sistema. De lo contrario, tu acción le preguntará al usuario si desean crear una cuenta nueva en tu sistema según su cuenta de Google la información del perfil.

GSI es la solución de vinculación de cuentas recomendada si se aplica alguna de las siguientes condiciones:

  • No tienes un sistema de autenticación existente o esperas que todos que los usuarios tengan una Cuenta de Google. Por ejemplo, si tu Acción es específicamente segmentar anuncios para el Asistente, puedes esperar que todos tus usuarios cuentas de servicio.
  • Tienes un sistema de autenticación existente y solo quieres vincular a los usuarios que hayan accedido a tu sistema con sus Cuentas de Google.

Para verificar que la GSI sea la solución adecuada para ti, consulta la Página Elige el tipo de vinculación de cuenta

Términos clave

Antes de leer sobre el funcionamiento de las GSI, familiarízate con los siguientes términos:

  • Token de ID de Google: es una aserción firmada de la identidad de un usuario que contiene la información básica del perfil de Google de un usuario (su nombre, dirección de correo electrónico y foto de perfil). Un token de ID de Google es un Token web JSON (JWT).

    El siguiente es un ejemplo de un token decodificado:

{
  "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: Es una propiedad que el sistema establece para indicar si la la sesión actual tiene un usuario verificado.

  • user.accountLinkingStatus: Es una propiedad que el sistema establece para indicar si la usuario en la sesión actual tenga una identidad vinculada.

  • Escena del sistema de vinculación de cuentas: Es una escena predefinida que implementa la confirmación. de vinculación de cuentas y se puede personalizar para adaptarlos a casos de uso específicos.

Cómo funciona

El flujo fundamental de la GSI es el siguiente:

  1. Tu acción solicita el consentimiento del usuario para acceder a su perfil de Google.
  2. Una vez que el usuario otorga su consentimiento, tu acción recibe un token de ID de Google que contiene la información del perfil de Google del usuario.
  3. Valida y decodifica el token para leer el contenido del perfil. Si usas Biblioteca de entregas de Actions on Google para Node.js este valida y decodifica el token por ti.
  4. Tu acción usa este token para verificar si el perfil de Google del usuario existe información en tu sistema.

    1. Si lo hace, el usuario ya accedió a tu sistema con su Cuenta de Google. El usuario puede continuar la conversación con Asistente con su identidad vinculada a su Cuenta de Google.
    2. Si no es así, el usuario puede crear una cuenta nueva en tu sistema con la información contenida en el token de ID de Google. Luego, el usuario puede continuar la conversación con Asistente con su nueva cuenta vinculada.

Flujos de Acceso con Google

En esta sección, se describen los distintos flujos que pueden ocurrir con el Acceso con Google.

Flujo 1: La información del usuario existe en tu sistema

En el siguiente diagrama, se muestra el flujo de extremo a extremo que se produce con la GSI cuando se Cuando la información del usuario ya existe en tu sistema:

En este caso, pasas al escenario del sistema de vinculación de cuentas y proporcionas una justificación personalizada. En esta escena, se le solicita permiso al usuario para acceder a la información de su perfil de Google.

Una vez que el usuario otorga su consentimiento, Asistente envía una solicitud que contiene lo siguiente: información del perfil de user@gmail.com. En este caso, la información contenido en el token de ID de Google para user@gmail.com coincide con una cuenta de tu sistema para que la identidad del usuario en tu Action se vincule automáticamente. a esa cuenta. Entonces, tu webhook puede leer el orden habitual del usuario desde una base de datos y responder en consecuencia.

Flujo 2: La información del usuario no existe en su sistema

En el siguiente diagrama, se muestra el flujo de extremo a extremo que se produce con la GSI cuando La información del usuario no existe en tu sistema:

En este caso, la información contenida en el token de ID de Google para user@gmail.com no coincide con ninguna cuenta de tu sistema, así que Asistente le pregunta al usuario si desea crear una cuenta nueva. El usuario puede completar el proceso de creación de la cuenta con la voz, en lugar de transferirlo a un dispositivo analizado.

Cuando el usuario acepta crear una cuenta, tu servicio usa la información en el token de ID (el nombre y la dirección de correo electrónico del usuario) para crear una cuenta para del usuario. Una vez creada la cuenta, la identidad del usuario en tu Acción esté vinculado a su nueva Cuenta de Google.

En este caso, el usuario no tiene un pedido habitual porque es nuevo en el servicio, por lo que tu acción le pregunta qué quiere pedir. Tú También puedes preguntarle al usuario si desea establecer su pedido más reciente. que es el pedido de siempre.