Pamięć użytkownika

W wywołaniu webhooka możesz przechowywać w pamięci użytkownika wartości parametrów dla konkretnego użytkownika (w różnych sesjach). Akcja może używać tych przechowywanych wartości później w komunikatach i warunkach. W razie potrzeby kod webhooka może w razie potrzeby uzyskiwać dostęp do wartości w pamięci użytkownika.

Stan pamięci użytkownika jest przekazywany w żądaniu app.handle() i przechowywany w obiekcie user.

Odczytywanie i zapisywanie danych w rozmowach

Aby zaktualizować lub ustawić nową wartość miejsca na dane użytkownika, przypisz wartość do pola params obiektu user w wywołaniu webhooka. Ten przykład ustawia ustawienie „exampleColor” na „red” w miejscu na dane użytkownika:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

Aby uzyskać dostęp do danych przechowywanych w pamięci użytkownika, przypisz je do zmiennej w wywołaniu webhooka. Ten przykład pobiera wartość z „exampleColor” w miejscu na dane użytkownika:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED",
        "exampleColor": "red"
      }
    }
  }
}
    

Aby usunąć wcześniej zapisaną wartość, ustaw wartość na null w wywołaniu webhooka. Ten przykład usuwa wartość „exampleColor” z pamięci użytkownika:

Node.js

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

JSON

{
  "responseJson": {
    "session": {
      "id": "1234567890123456789",
      "params": {}
    },
    "prompt": {
      "override": false
    },
    "user": {
      "locale": "en-US",
      "params": {
        "verificationStatus": "VERIFIED"
      }
    }
  }
}
    

Odwoływanie się do zapisanych wartości w promptach

Wartości zapisane w pamięci użytkownika możesz odwoływać się w prompcie. Aby odwołać się do wartości, użyj składni $user.params.PARAMETER_NAME, gdzie PARAMETER_NAME to nazwa podana w webhooku podczas ustawiania parametru.

Na przykład w Twojej pamięci użytkownika jako parametr exampleColor była wcześniej zapisana wartość koloru. Aby uzyskać dostęp do tej wartości w prompcie, odwołuj się do niej za pomocą funkcji $user.params.exampleColor:

JSON

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

Utwórz odwołanie do zapisanych wartości zgodnie z warunkami

W conditions możesz też odwoływać się do wartości przechowywanych w pamięci użytkownika. Aby odwołać się do wartości, użyj składni user.params.PARAMETER_NAME, gdzie PARAMETER_NAME to nazwa nadana webhookowi podczas ustawiania parametru.

Na przykład w pamięci użytkownika jako parametr exampleColor była wcześniej zapisana wartość koloru, a teraz chcesz dopasować ją do wartości „red” (czerwony) w warunku. W warunku możesz się odwoływać do zapisanej wartości za pomocą funkcji user.params.exampleColor. Wyrażenie warunku będzie wtedy wyglądać tak:

Składnia warunku

user.params.exampleColor == "red"
    

Wygaśnięcie danych dotyczących miejsca na dane użytkownika

W przypadku zweryfikowanych użytkowników dane przechowywane w pamięci użytkownika tracą ważność zgodnie z ich ustawieniami Aktywności w internecie i aplikacjach. Można je też usunąć przez samą akcję. W przypadku niezweryfikowanych użytkowników Asystent na koniec rozmowy czyści zawartość ich pamięci.

Actions on Google określa stan weryfikacji użytkownika na początku każdej rozmowy na podstawie różnych wskaźników rozpoczęcia rozmowy. Na przykład użytkownik zalogowany w Asystencie Google na urządzeniu mobilnym ma stan weryfikacji VERIFIED.

Stan weryfikacji użytkownika GUEST może mieć jedną z tych przyczyn:

  • użytkownik wyłączył funkcję Twoje wyniki;
  • użytkownik wyłączył Aktywność w internecie i aplikacjach. Pamiętaj, że niektórzy użytkownicy mogą mieć wyłączone to ustawienie na poziomie domeny.
  • Jeśli na urządzeniu jest włączona funkcja Voice Match, a dopasowanie nie powiedzie się lub użytkownik wywoła Asystenta bez użycia głosu (np. przytrzymanie urządzenia Nest Home).
  • Użytkownik nie jest zalogowany.

Przed zapisaniem danych w miejscu na dane użytkownika zawsze sprawdzaj stan weryfikacji użytkownika, aby uniemożliwić gościom korzystanie z funkcji, która im się nie powiedzie.

Widoczność dla użytkowników

Jako użytkownik możesz wyświetlać dane przechowywane w pamięci użytkownika na potrzeby wywoływanych akcji. Możesz też usunąć przechowywane w pamięci użytkownika dane z określonej akcji lub wyłączyć zapamiętywanie Cię przez usługę.

Aby wyświetlić zapisane dane lub wyłączyć zapamiętywanie przez usługę, wykonaj te czynności:

  1. Otwórz katalog Asystenta.
  2. Znajdź i wybierz działanie, dla którego chcesz wyświetlić lub zwolnić miejsce na dane użytkownika.
  3. Przewiń stronę w dół:
    • Aby wyświetlić zawartość pamięci użytkownika, kliknij [Wyświetl zapisane dane].
    • Aby zresetować dane przechowywane w pamięci użytkownika na potrzeby usługi, kliknij Resetuj.
    • Aby usunąć dane przechowywane w pamięci użytkownika i uniemożliwić usłudze zapamiętywanie Cię, kliknij Wyłącz zapamiętywanie mnie przez action_name.