W wywołaniu webhooka możesz przechowywać wartości parametrów w wielu sesjach w tym samym domu (na podstawie Home Graph) w pamięci domowej. Akcja może używać tych zapisanych wartości później w promptach i warunkach, a kod webhooka może w razie potrzeby uzyskiwać dostęp do wartości w pamięci domowej w określonym domu.
Stan pamięci masowej jest przekazywany w żądaniu app.handle()
i jest przechowywany w obiekcie home
.
Ograniczenia
Domowej pamięci nie można używać na urządzeniach mobilnych, ponieważ nie są one częścią wykresu głównego. W kodzie webhooka użyj funkcji urządzenia HOME_STORAGE
, aby rozgałęzić logikę biznesową w zależności od możliwości urządzenia użytkownika.
Musisz wyrazić zgodę na korzystanie z domowej pamięci masowej:
- W konsoli Actions kliknij Wdróż > Informacje z katalogu.
- W sekcji Dodatkowe informacje zaznacz pole Miejsce na dane w domu.
Odczytywanie i zapisywanie danych w domu
Aby zaktualizować lub ustawić nową wartość w pamięci domowej, przypisz wartość do pola params
obiektu home
w wywołaniu webhooka. Ten przykład ustawia ustawienie „exampleColor” na „red” w domowej pamięci masowej:
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" } } } }
Aby uzyskać dostęp do danych przechowywanych w pamięci domowej, przypisz je do zmiennej w wywołaniu webhooka. Ten przykład pobiera wartość z „exampleColor” w pamięci domowej:
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" } } } }
Aby usunąć wcześniej zapisaną wartość, ustaw wartość na null
w wywołaniu webhooka.
Ten przykład usuwa wartość „exampleColor” z pamięci domowej:
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": {} } } }
Odwoływanie się do zapisanych wartości w promptach
Wartości zapisane w pamięci domowej możesz znaleźć w prompcie. Aby odwołać się do wartości, użyj składni $home.params.PARAMETER_NAME
, gdzie PARAMETER_NAME
to nazwa nadana webhookowi podczas ustawiania parametru.
Na przykład wcześniej zapisałeś(-aś) wartość koloru w pamięci domowej jako parametr exampleColor
. Aby uzyskać dostęp do tej wartości w prompcie, odwołuj się do niej za pomocą funkcji $home.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
Utwórz odwołanie do zapisanych wartości zgodnie z warunkami
Możesz też odwoływać się do wartości przechowywanych w domowej pamięci masowej w conditions. Aby odwołać się do wartości, użyj składni home.params.PARAMETER_NAME
, gdzie PARAMETER_NAME
to nazwa nadana webhookowi podczas ustawiania parametru.
Na przykład w przechowywaniu urządzeń domowych jako parametr exampleColor
była przechowywana wartość koloru, ale chcesz dopasować ją do wartości „red” (czerwony) w przypadku warunku. W warunku możesz się odwoływać do zapisanej wartości za pomocą funkcji home.params.exampleColor
. Wyrażenie warunku będzie wtedy wyglądać tak:
Składnia warunku
home.params.exampleColor == "red"
Data wygaśnięcia danych w domu
Dane w pamięci domowej są czyszczone po 90 kolejnych dniach akcji, która nie jest wywoływana. Wywołanie działania na dowolnym urządzeniu powiązanym z strukturą Home Graph resetuje 90-dniowy minutnik. Jeśli struktura Home Graph zostanie usunięta, powiązane z nią dane dotyczące miejsca na dane zostaną wyczyszczone.
W przypadku akcji, które korzystają z pamięci domowej, menedżerowie struktury Home Graph mogą wyczyścić miejsce na dane w domach, którymi zarządzają na stronie akcji w katalogu Asystenta:
- Znajdź i wybierz działanie, dla którego chcesz wyświetlić lub zwolnić miejsce na dane użytkownika.
- Przewiń stronę w dół:
- Aby usunąć dane przechowywane w domu, kliknij Wyłącz zapamiętywanie mnie przez użytkownika action_name.
Gdy menedżer urządzenia odłączy je od domu, pamięć urządzenia też zostanie odłączona. Dane w domu są nadal powiązane z urządzeniem, nawet jeśli zmieni się menedżer domu, chyba że menedżer je wyczyści.
Dane dotyczące miejsca na dane w domu w symulatorze
Gdy testujesz akcję za pomocą symulatora w konsoli Actions, dane przechowywane w domowej pamięci masowej działają nieco inaczej niż na urządzeniu fizycznym. Symulator jest uważany za część własnego Home Graph, więc dane nie są przechowywane na innych urządzeniach w Twojej sieci. Poza tym dane przechowywane w miejscu na dane nie są zachowywane pomiędzy sesjami, gdy włączone jest ustawienie symulatora Symuluj niezweryfikowanego użytkownika.
Przykładowa interakcja
Oto przykładowa interakcja zalogowanego użytkownika przy pierwszym wywołaniu akcji:
Zapytanie użytkownika | OK Google, przejdź do Przykładowego działania. |
---|---|
Odpowiedź Asystenta | Pobieram element ExampleAction. |
Odpowiedź Asystenta | Pamiętaj, że funkcja ExampleAction jest zapisywana za każdym razem, gdy w nią grasz, więc inne osoby w domu mogą zacząć od tego samego miejsca. |
Przykładowa odpowiedź | Dzień dobry, Jesteś na poziomie 0. Powiedz dalej, zresetuj lub anuluj. |
Zapytanie użytkownika | Dalej. |
Przykładowa odpowiedź | Jesteś na poziomie 1. |
Zapytanie użytkownika | Zamknij. |
Następnie, gdy ten sam zweryfikowany użytkownik powróci do akcji po pewnym czasie:
Zapytanie użytkownika | OK Google, przejdź do Przykładowego działania. |
---|---|
Odpowiedź Asystenta | Pobieram element ExampleAction. |
Przykładowa odpowiedź | Dzień dobry, Jesteś na poziomie 1. Powiedz dalej, zresetuj lub anuluj. |
Zapytanie użytkownika | Dalej. |
Przykładowa odpowiedź | Jesteś na poziomie 2. |
Zapytanie użytkownika | Zamknij. |
Następnego dnia niezweryfikowany użytkownik wchodzi w interakcję z działaniem na innym urządzeniu w tym samym domu (zgodnie z ustawieniami Home Graph).
Zapytanie użytkownika | OK Google, przejdź do Przykładowego działania. |
---|---|
Odpowiedź Asystenta | Pobieram element ExampleAction. |
Odpowiedź Asystenta | Pamiętaj, że funkcja ExampleAction jest zapisywana za każdym razem, gdy w nią grasz, więc inne osoby w domu mogą zacząć od tego samego miejsca. |
Przykładowa odpowiedź | Dzień dobry, Jesteś na poziomie 2. Powiedz dalej, zresetuj lub anuluj. |
Zapytanie użytkownika | Dalej. |
Przykładowa odpowiedź | Jesteś na poziomie 3. |
Zapytanie użytkownika | Zamknij. |