In una chiamata webhook, puoi memorizzare i valori dei parametri in più sessioni in della stessa abitazione (in base a Home Graph) nello spazio di archiviazione della casa. L'azione può e poi utilizzare i valori archiviati in un secondo momento in prompt e condizioni e il webhook può accedere ai valori nello spazio di archiviazione della casa per un nucleo familiare specifico quando necessario.
Lo stato di archiviazione della casa viene passato in una richiesta app.handle()
e viene archiviato
nell'oggetto home
.
Limitazioni
Lo spazio di archiviazione della casa non può essere utilizzato con i dispositivi mobili, poiché non fanno parte di una casa
Grafico. Nel codice webhook, utilizza la funzionalità del dispositivo HOME_STORAGE
alla logica di business in base alle capacità del dispositivo dell'utente.
Devi attivare l'utilizzo dello spazio di archiviazione della casa:
- Nella console di Actions, vai a Deploy > Informazioni sulla directory.
- Nella sezione Informazioni aggiuntive, seleziona la casella Casa. spazio di archiviazione.
Leggere e scrivere dati in un nucleo familiare
Per aggiornare o impostare un nuovo valore nello spazio di archiviazione della casa, assegna il valore a params
campo dell'oggetto home
in una chiamata webhook. Nell'esempio che segue
imposta "exampleColor" al "rosso" nello spazio di archiviazione della casa:
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" } } } }
Per accedere ai dati archiviati nello spazio di archiviazione di Google Home, assegnali a una variabile in un webhook chiamata. L'esempio seguente recupera un valore da "exampleColor" a casa spazio di archiviazione:
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" } } } }
Per cancellare un valore salvato in precedenza, imposta il valore su null
in una chiamata webhook.
L'esempio seguente cancella il valore di "exampleColor" nello spazio di archiviazione della casa:
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": {} } } }
Fare riferimento ai valori archiviati all'interno dei prompt
Puoi fare riferimento ai valori archiviati nello spazio di archiviazione di casa in una richiesta. Come riferimento
il valore, utilizza $home.params.PARAMETER_NAME
sintassi, dove PARAMETER_NAME
è il nome specificato nella
quando il parametro è stato impostato.
Ad esempio, in precedenza hai memorizzato un valore del colore nello spazio di archiviazione della casa come
parametro exampleColor
. Per accedere a quel valore in un prompt, devi fare riferimento
utilizzando $home.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
Fare riferimento ai valori archiviati all'interno delle condizioni
Puoi anche fare riferimento ai valori archiviati nello spazio di archiviazione di casa in condizioni. A
fare riferimento al valore, utilizzare l'home.params.PARAMETER_NAME
sintassi, dove PARAMETER_NAME
è il nome specificato nella
quando il parametro è stato impostato.
Ad esempio, in precedenza hai memorizzato un valore del colore nello spazio di archiviazione della casa come
parametro exampleColor
e vuoi associarlo al valore "red" in un
. Nella tua condizione, fai riferimento al valore memorizzato utilizzando
home.params.exampleColor
. L'espressione della condizione ha quindi il seguente aspetto:
questo:
Sintassi delle condizioni
home.params.exampleColor == "red"
Scadenza dei dati di archiviazione della casa
I dati nello spazio di archiviazione della casa vengono cancellati dopo 90 giorni consecutivi in cui l'azione non è stata eseguita richiamato. Richiamare l'azione su qualsiasi dispositivo associato a Home Graph reimposta il timer di 90 giorni. Se una struttura Home Graph viene eliminata, i dati di archiviazione della casa corrispondenti vengono cancellati.
Per le Azioni che utilizzano lo spazio di archiviazione della casa, i gestori della struttura di Home Graph possono cancellare i dati della schermata Home spazio di archiviazione per le strutture che gestisce dalla pagina dell'azione nella directory dell'assistente:
- Individua e seleziona l'azione per cui vuoi visualizzare o liberare lo spazio di archiviazione dell'utente.
- Scorri fino in fondo alla pagina:
- Per rimuovere i dati archiviati per te nello spazio di archiviazione domestico, fai clic su Interrompi action_name. non ricordarmi di me.
Quando il gestore di un dispositivo lo dissocia dalla struttura, lo spazio di archiviazione della casa viene a sua volta dissociato. I dati dello spazio di archiviazione della casa continuano a essere associati a un dispositivo anche se il gestore della struttura cambia, a meno che non venga cancellato da un gestore della struttura.
Dati di archiviazione della casa nel simulatore
Quando testi l'azione utilizzando il simulatore nella console di Actions: che i dati memorizzati nello spazio di archiviazione di casa si comportano in modo leggermente diverso rispetto a un dispositivo. Poiché il simulatore è considerato parte del suo Home Graph, i dati non rimangono memorizzati su altri dispositivi presenti nella tua rete. Inoltre, la home page I dati di archiviazione non vengono mantenuti tra una sessione e l'altra quando l'opzione Simula utente sia abilitata.
Esempio di interazione
Ecco un esempio di interazione di un utente che ha eseguito l'accesso alla prima chiamata a l'azione:
Query utente | Hey Google, parla con ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta dell'assistente | Tieni presente che ExampleAction viene salvato ogni volta che lo riproduci, quindi gli altri membri del nucleo familiare possono riprendere da dove avevi interrotto. |
Risposta di ExampleAction | Ciao utente verificato. Sei al livello 0. Di' Avanti, Reimposta o Annulla. |
Query utente | Avanti. |
Risposta di ExampleAction | Sei al livello 1. |
Query utente | Abbandona. |
Quando lo stesso utente verificato torna all'azione dopo un po' di tempo:
Query utente | Hey Google, parla con ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta di ExampleAction | Ciao utente verificato. Sei al livello 1. Di' Avanti, Reimposta o Annulla. |
Query utente | Avanti. |
Risposta di ExampleAction | Sei al livello 2. |
Query utente | Abbandona. |
Il giorno successivo, un utente non verificato interagisce con l'azione su un altro dispositivo appartenenti allo stesso nucleo familiare (come specificato nell'Home Graph).
Query utente | Hey Google, parla con ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta dell'assistente | Tieni presente che ExampleAction viene salvato ogni volta che lo riproduci, quindi gli altri membri del nucleo familiare possono riprendere da dove avevi interrotto. |
Risposta di ExampleAction | Ciao utente ospite. Sei al livello 2. Di' Avanti, Reimposta o Annulla. |
Query utente | Avanti. |
Risposta di ExampleAction | Sei al livello 3. |
Query utente | Abbandona. |