Stockage domestique

Dans un appel webhook, vous pouvez stocker les valeurs des paramètres de plusieurs sessions dans d'un même foyer (d'après Home Graph) dans l'espace de stockage domestique. Votre action peut puis utiliser ces valeurs stockées dans des requêtes et des conditions. Votre webhook code peut accéder aux valeurs du stockage domestique d'un foyer spécifique si nécessaire.

L'état de l'espace de stockage personnel est transmis dans une requête app.handle() et stocké. dans l'objet home.

Limites

Vous ne pouvez pas utiliser l'espace de stockage Home avec les appareils mobiles, car ils ne font pas partie d'une maison Graphique. Dans le code de votre webhook, utilisez la fonctionnalité d'appareil HOME_STORAGE. pour établir des branches de logique métier selon les capacités de l'appareil de l'utilisateur.

Vous devez accepter d'utiliser le stockage personnel:

  1. Dans la console Actions, accédez à Déployer > Informations sur l'annuaire.
  2. Dans la section Informations supplémentaires, cochez la case Accueil stockage.

Lire et écrire les données d'un foyer

Pour modifier ou définir une nouvelle valeur de l'espace de stockage personnel, attribuez la valeur à l'params de l'objet home dans un appel webhook. L'exemple suivant définit "exampleColor" à "rouge" dans votre espace de stockage personnel:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "exampleColor": "red"
      }
    }
  }
}
    

Pour accéder aux données stockées dans l'espace de stockage de la maison, attribuez-les à une variable dans un webhook . L'exemple suivant récupère une valeur de "exampleColor" dans la maison stockage:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {
        "homeColor": "red"
      }
    }
  }
}
    

Pour effacer une valeur enregistrée précédemment, définissez la valeur sur null dans un appel webhook. L'exemple suivant efface la valeur de "exampleColor" dans votre espace de stockage personnel:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "home": {
      "params": {}
    }
  }
}
    

Référencer des valeurs stockées dans les requêtes

Vous pouvez référencer les valeurs stockées dans votre espace de stockage personnel dans une requête. À référencer la valeur, utilisez $home.params.PARAMETER_NAME , où PARAMETER_NAME est le nom donné dans le lorsque le paramètre a été défini.

Par exemple, vous avez précédemment stocké une valeur de couleur dans l'espace de stockage de la maison paramètre exampleColor. Pour accéder à cette valeur dans une requête, vous la référencez à l'aide de $home.params.exampleColor:

JSON

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

Référencer des valeurs stockées dans des conditions

Vous pouvez également référencer des valeurs stockées dans l'espace de stockage personnel dans des conditions. À référencer la valeur, utilisez home.params.PARAMETER_NAME , où PARAMETER_NAME est le nom donné dans le lorsque le paramètre a été défini.

Par exemple, vous avez précédemment stocké une valeur de couleur dans l'espace de stockage de la maison exampleColor et vous souhaitez l'associer à la valeur "red" dans un . Dans votre condition, vous référencez la valeur stockée home.params.exampleColor Votre expression de condition se présente alors comme suit : ceci:

Syntaxe de la condition

home.params.exampleColor == "red"
    

Expiration des données de stockage

Les données de l'espace de stockage de la maison sont effacées au bout de 90 jours consécutifs invoquée. Appeler l'action sur n'importe quel appareil associé au Home Graph réinitialise le délai de 90 jours. Si une structure de Home Graph est supprimée, le les données de stockage de la maison correspondantes sont effacées.

Pour les actions qui utilisent l'espace de stockage de la page d'accueil, les gestionnaires de structure de Home Graph peuvent effacer le contenu de la page d'accueil stockage des structures qu'il gère depuis la page de l'action dans le répertoire de l'Assistant:

  1. Recherchez et sélectionnez l'action pour laquelle vous souhaitez afficher ou vider l'espace de stockage utilisateur.
  2. Faites défiler la page jusqu'en bas: <ph type="x-smartling-placeholder">
      </ph>
    • Pour supprimer les données stockées dans votre espace de stockage personnel, cliquez sur Arrêter action_name de se souvenir de moi.

Lorsque le gestionnaire d'un appareil le dissocie de la structure, l'espace de stockage personnel est également dissociées. Les données de stockage de la maison restent associées à un appareil même si le gestionnaire de la structure change, sauf si un responsable de la structure l'autorise.

Données de stockage personnel dans le simulateur

Lorsque vous testez votre action à l'aide du simulateur de la console Actions, procédez comme suit : les données stockées dans le stockage à domicile se comportent un peu différemment appareil. Le simulateur est considéré comme faisant partie de son propre Home Graph. Les données ne sont donc pas persister sur d'autres appareils que vous pourriez avoir dans votre réseau. De plus, la page d'accueil les données de stockage ne sont pas conservées d'une session à l'autre lorsque l'événement Simuler un événement non validé utilisateur est activé.

Exemple d'interaction

Voici un exemple d'interaction d'un utilisateur connecté lors de son premier appel de l'action:

Requête utilisateur Hey Google, parle à ExampleAction.
Réponse de l'Assistant Obtenir ExampleAction.
Réponse de l'Assistant Pour info, ExampleAction est enregistrée chaque fois que vous y jouez, donc d'autres membres de votre foyer peuvent reprendre là où vous vous étiez arrêté.
Réponse ExampleAction Bonjour, Vous êtes au niveau 0. Dites "Suivant", "Réinitialiser" ou "Annuler".
Requête utilisateur Suivant.
Réponse ExampleAction Vous êtes au niveau 1.
Requête utilisateur Quitter.

Ensuite, lorsque ce même utilisateur validé revient à l'action au bout d'un certain temps:

Requête utilisateur Hey Google, parle à ExampleAction.
Réponse de l'Assistant Obtenir ExampleAction.
Réponse ExampleAction Bonjour, Vous êtes au niveau 1. Dites "Suivant", "Réinitialiser" ou "Annuler".
Requête utilisateur Suivant.
Réponse ExampleAction Vous êtes au niveau 2.
Requête utilisateur Quitter.

Le lendemain, un utilisateur non validé interagit avec l'action sur un autre appareil. au sein d'un même foyer (comme indiqué sur le Home Graph).

Requête utilisateur Hey Google, parle à ExampleAction.
Réponse de l'Assistant Obtenir ExampleAction.
Réponse de l'Assistant Pour info, ExampleAction est enregistrée chaque fois que vous y jouez, donc d'autres membres de votre foyer peuvent reprendre là où vous vous étiez arrêté.
Réponse ExampleAction Bonjour, Vous êtes au niveau 2. Dites "Suivant", "Réinitialiser" ou "Annuler".
Requête utilisateur Suivant.
Réponse ExampleAction Vous êtes au niveau 3.
Requête utilisateur Quitter.