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:
- Dans la console Actions, accédez à Déployer > Informations sur l'annuaire.
- 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:
- Recherchez et sélectionnez l'action pour laquelle vous souhaitez afficher ou vider l'espace de stockage utilisateur.
- Faites défiler la page jusqu'en bas:
- 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 personnel 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 mais vos messages peuvent être conservés sur d'autres appareils de 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. |