In una chiamata webhook, puoi memorizzare i valori dei parametri in più sessioni nella stessa abitazione (in base a Home Graph) nello spazio di archiviazione della casa. L'Azione può quindi utilizzare i valori archiviati in un secondo momento nei prompt e nelle condizioni e, se necessario, il codice webhook può accedere ai valori nello spazio di archiviazione dell'abitazione per un nucleo familiare specifico.
Lo stato dell'archiviazione domestica viene passato in una richiesta app.handle()
e archiviato
nell'oggetto home
.
Limitazioni
Lo spazio di archiviazione di Google Home non può essere utilizzato con i dispositivi mobili, in quanto non fanno parte di Google Home. Nel codice webhook, utilizza la funzionalità del dispositivo HOME_STORAGE
per diramare la logica di business in base alle capacità del dispositivo dell'utente.
Devi attivare l'uso dello spazio di archiviazione domestico:
- Nella console di Actions, vai a Deployment > Informazioni sulla directory.
- Nella sezione Informazioni aggiuntive, seleziona la casella Archiviazione di casa.
Leggere e scrivere dati in un nucleo familiare
Per aggiornare o impostare un nuovo valore nello spazio di archiviazione Home, assegna il valore al campo params
dell'oggetto home
in una chiamata webhook. L'esempio seguente imposta "exampleColor" su "red" nello spazio di archiviazione domestico:
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 una chiamata webhook. L'esempio seguente recupera un valore da "exampleColor" nello spazio di archiviazione della home page:
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, impostalo su null
in una chiamata webhook.
L'esempio seguente cancella il valore di "exampleColor" nello spazio di archiviazione domestico:
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 memorizzati nello spazio di archiviazione di Google Home in un messaggio. Per fare riferimento al valore, utilizza la sintassi $home.params.PARAMETER_NAME
, dove PARAMETER_NAME
è il nome assegnato nel webhook quando è stato impostato il parametro.
Ad esempio, hai precedentemente archiviato un valore di colore nello spazio di archiviazione domestico come
parametro exampleColor
. Per accedere a quel valore in un prompt, devi fare riferimento a tale valore utilizzando $home.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
Fare riferimento ai valori archiviati nelle condizioni
Puoi anche fare riferimento ai valori memorizzati nello spazio di archiviazione domestico in conditions. Per fare riferimento al valore, utilizza la sintassi home.params.PARAMETER_NAME
, dove PARAMETER_NAME
è il nome assegnato nel webhook quando è stato impostato il parametro.
Ad esempio, hai precedentemente archiviato un valore di colore nello spazio di archiviazione della casa come
parametro exampleColor
e vuoi che corrisponda al valore "rosso" in una
condizione. Nella condizione, fai riferimento al valore archiviato utilizzando home.params.exampleColor
. L'espressione della condizione si presenta così:
Sintassi delle condizioni
home.params.exampleColor == "red"
Scadenza dei dati di archiviazione della casa
I dati dello spazio di archiviazione in casa vengono cancellati dopo 90 giorni consecutivi in cui l'Azione non è stata richiamata. Richiamare l'Azione su qualsiasi dispositivo associato alla struttura Home Graph reimposta il timer di 90 giorni. Se una struttura Home Graph viene eliminata, i dati dello spazio di archiviazione della casa corrispondente vengono cancellati.
Per le Azioni che utilizzano lo spazio di archiviazione di casa, i gestori della struttura Home Graph possono svuotare lo spazio di archiviazione di Home per le strutture che gestiscono dalla pagina Azione nella directory dell'assistente:
- Trova e seleziona l'Azione per cui vuoi visualizzare o per cui vuoi cancellare lo spazio di archiviazione dell'utente.
- Scorri fino in fondo alla pagina:
- Per rimuovere i dati archiviati nello spazio di archiviazione di Google Home, fai clic su Interrompi la memorizzazione delle informazioni personali da parte di action_name.
Quando il gestore di un dispositivo lo dissocia dalla struttura, anche lo spazio di archiviazione della casa si dissocia. I dati di archiviazione della casa continuano a essere associati a un dispositivo anche se il gestore della struttura cambia, a meno che il gestore della struttura non li cancelli.
Dati di archiviazione della casa nel simulatore
Quando testi l'Azione con il simulatore nella console Actions, i dati archiviati nello spazio di archiviazione in casa si comportano in modo leggermente diverso rispetto a un dispositivo fisico. Il simulatore è considerato parte di Home Graph a sé stante, pertanto i dati non sono visibili ad altri dispositivi che potresti avere nella tua rete. Inoltre, i dati di archiviazione della casa non vengono mantenuti tra una sessione e l'altra quando è attivata l'impostazione del simulatore Simula utente non verificato.
Esempio di interazione
Ecco un esempio di interazione di un utente che ha eseguito l'accesso alla prima chiamata dell'azione:
User query | Hey Google, parla ad ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta dell'assistente | Tieni presente che ExampleAction viene salvato ogni volta che lo usi, in modo che gli altri membri del tuo nucleo familiare possano riprendere da dove avevi interrotto. |
Risposta ExampleAction | Ciao utente verificato. Sei al livello 0. Di' successivo, reimposta o annulla. |
User query | Avanti. |
Risposta ExampleAction | Sei al livello 1. |
User query | Abbandona. |
Quindi, quando lo stesso utente verificato torna all'Azione dopo un certo periodo di tempo:
User query | Hey Google, parla ad ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta ExampleAction | Ciao utente verificato. Sei al livello 1. Di' successivo, reimposta o annulla. |
User query | Avanti. |
Risposta ExampleAction | Sei al livello 2. |
User query | Abbandona. |
Il giorno successivo, un utente non verificato interagisce con l'Azione su un altro dispositivo all'interno dello stesso nucleo familiare (come specificato in Home Graph).
User query | Hey Google, parla ad ExampleAction. |
---|---|
Risposta dell'assistente | Recupero di ExampleAction. |
Risposta dell'assistente | Tieni presente che ExampleAction viene salvato ogni volta che lo usi, in modo che gli altri membri del tuo nucleo familiare possano riprendere da dove avevi interrotto. |
Risposta ExampleAction | Ciao utente ospite. Sei al livello 2. Di' successivo, reimposta o annulla. |
User query | Avanti. |
Risposta ExampleAction | Sei al livello 3. |
User query | Abbandona. |