Almacenamiento del usuario

En una llamada de webhook, puedes almacenar valores de parámetros para un usuario específico en varias sesiones en el almacenamiento de usuarios. Luego, tu Acción puede usar esos valores almacenados en mensajes y condiciones, y el código de webhook puede acceder a los valores en el almacenamiento del usuario para un usuario específico cuando sea necesario.

El estado del almacenamiento del usuario se pasa en una solicitud app.handle() y se almacena en el objeto user.

Lee y escribe datos en conversaciones

Para actualizar o configurar un valor nuevo en el almacenamiento del usuario, asigna el valor al campo params del objeto user en una llamada de webhook. En el siguiente ejemplo, se configura "exampleColor" como "red" en el almacenamiento del usuario:

Node.js

// Assign color to user storage
app.handle('storeColor', conv => {
  let color = 'red';
  conv.user.params.exampleColor = color;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

Para acceder a los datos almacenados en el almacenamiento del usuario, asígnalos a una variable en una llamada de webhook. En el siguiente ejemplo, se recupera un valor de “exampleColor” en el almacenamiento del usuario:

Node.js

// Retrieve color from user storage
app.handle('getStoredColor', conv => {
  let color = conv.user.params.exampleColor;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

Para borrar un valor guardado previamente, configúralo como null en una llamada de webhook. En el siguiente ejemplo, se borra el valor de “exampleColor” del almacenamiento del usuario:

Node.js

// Clear color from user storage
app.handle('clearStoredColor', conv => {
  conv.user.params.exampleColor = null;
});
    

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED"
      }
    }
  }
}
    

Cómo hacer referencia a valores almacenados en los mensajes

Puedes hacer referencia a valores almacenados en el almacenamiento del usuario en un mensaje. Para hacer referencia al valor, usa la sintaxis $user.params.PARAMETER_NAME, en la que PARAMETER_NAME es el nombre que se asignó en el webhook cuando se configuró el parámetro.

Por ejemplo, antes almacenaste un valor de color en el almacenamiento del usuario como el parámetro exampleColor. Para acceder a ese valor en un mensaje, debes hacer referencia a ese valor con $user.params.exampleColor:

JSON

{
  "candidates": [{
    "first_simple": {
      "variants": [{
        "speech": "Your favorite color is $user.params.exampleColor."
      }]
    }
  }]
}
    

Haz referencia a valores almacenados en condiciones

También puedes hacer referencia a valores almacenados en el almacenamiento del usuario en conditions. Para hacer referencia al valor, usa la sintaxis user.params.PARAMETER_NAME, en la que PARAMETER_NAME es el nombre que se proporcionó en el webhook cuando se configuró el parámetro.

Por ejemplo, antes almacenaste un valor de color en el almacenamiento del usuario como el parámetro exampleColor y deseas hacerlo coincidir con el valor "rojo" en una condición. En tu condición, debes hacer referencia al valor almacenado mediante user.params.exampleColor. Tu expresión de condición se ve de la siguiente manera:

Sintaxis de condiciones

user.params.exampleColor == "red"
    

Vencimiento de los datos de almacenamiento del usuario

En el caso de los usuarios verificados, los datos almacenados en el almacenamiento del usuario vencen según la configuración de su Actividad web y de aplicaciones, y la Acción también puede borrarlos. En el caso de los usuarios que no están verificados, Asistente borra el contenido del almacenamiento del usuario al final de la conversación.

Actions on Google establece el estado de verificación del usuario al comienzo de cada conversación en función de una variedad de indicadores cuando esta comienza. Por ejemplo, un usuario que accedió a Asistente de Google en su dispositivo móvil tiene el estado de verificación VERIFIED.

A continuación, se incluyen algunos motivos posibles por los que un usuario puede tener un estado de verificación de GUEST:

  • El usuario tiene desactivados los resultados personales.
  • El usuario inhabilitó su Actividad web y de aplicaciones. Ten en cuenta que algunos usuarios pueden tener este parámetro de configuración inhabilitado a nivel del dominio.
  • Si un dispositivo tiene Voice Match habilitado y la coincidencia falla o el usuario invoca al Asistente sin usar la voz (por ejemplo, si se mantiene presionado un dispositivo Nest Home).
  • El usuario no accedió.

Siempre comprueba el estado de verificación del usuario antes de almacenar datos en el almacenamiento del usuario para evitar que los usuarios invitados interactúen con una función que le fallará.

Visibilidad para los usuarios

Como usuario, puedes ver los datos almacenados en tu almacenamiento de usuario para las acciones que invoques. También puedes quitar los datos almacenados en el almacenamiento del usuario de una Acción específica o evitar que el servicio te recuerde.

Para ver tus datos almacenados o impedir que un servicio te recuerde, sigue estos pasos:

  1. Ve al directorio de Asistente.
  2. Busca y selecciona la acción para la que quieras ver o liberar espacio de almacenamiento del usuario.
  3. Desplázate hasta la parte inferior de la página:
    • Para ver el contenido de tu almacenamiento de usuario, haz clic en [Ver datos almacenados].
    • Para restablecer los datos guardados en el almacenamiento de usuario del servicio, haz clic en Restablecer.
    • Para quitar los datos almacenados en el almacenamiento del usuario y evitar que el servicio te recuerde, haz clic en Impedir que action_name me recuerde.