Pamięć użytkownika

W wywołaniu webhooka możesz przechowywać wartości parametrów konkretnego użytkownika w różnych sesjach. Twoja akcja może następnie użyć tych zapisanych wartości później w potwierdzeniach i warunkach, a kod webhook będzie w razie potrzeby mieć dostęp do wartości w pamięci konkretnego użytkownika.

Stan miejsca na dane użytkownika jest przekazywany w żądaniu app.handle() i jest przechowywany w obiekcie user.

Odczytywanie i zapisywanie danych w rozmowach

Aby zaktualizować lub ustawić nową wartość w miejscu na dane użytkownika, przypisz wartość do pola params obiektu user w wywołaniu webhooka. W tym przykładzie ustawiana wartość „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 powoduje pobranie wartości z pola „exampleColor” w magazynie danych 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ąć zapisaną wcześniej wartość, ustaw wywołanie null na wartość wywołania webhooka. Poniższy przykład powoduje wyczyszczenie wartości „exampleColor” w 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 przechowywanych wartości w podpowiedziach

W prośbie możesz odwołać 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 w webhooku podczas ustawiania parametru.

Na przykład wcześniej kolor został zapisany w pamięci użytkownika jako parametr exampleColor. Aby uzyskać dostęp do tej wartości w komunikacie, odwołuj się do niej za pomocą atrybutu $user.params.exampleColor:

JSON

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

Odwoływanie się do przechowywanych wartości w warunkach

Możesz też odwoływać się do wartości przechowywanych w pamięci użytkownika w warunkach. 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 wcześniej kolor został zapisany w magazynie danych użytkownika jako parametr exampleColor, a Ty chcesz dopasować go do wartości „red” w warunku. W warunku musisz odwoływać się do zapisanej wartości za pomocą user.params.exampleColor. Wyrażenie warunku będzie wyglądać np. tak:

Składnia warunków

user.params.exampleColor == "red"
    

Wygaśnięcie danych przechowywanych przez użytkownika

W przypadku zweryfikowanych użytkowników dane przechowywane w pamięci wygasają zgodnie z ustawieniami Aktywności w internecie i aplikacjach i mogą zostać wyczyszczone przez tę czynność. W przypadku użytkowników, którzy nie zostali zweryfikowani, Asystent usuwa zawartość pamięci po zakończeniu rozmowy.

Actions on Google ustawia stan weryfikacji użytkownika na początku każdej rozmowy na podstawie różnych wskaźników wpływających na rozpoczęcie rozmowy. Na przykład użytkownik zalogowany do Asystenta Google na urządzeniu mobilnym ma stan weryfikacji VERIFIED.

Oto możliwe powody, dla których użytkownik może mieć stan weryfikacji GUEST:

  • Twoje wyniki są wyłączone.
  • 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 i dopasowanie się nie powiedzie lub użytkownik wywoła Asystenta bez użycia głosu (na przykład przytrzyma urządzenie Nest Home).
  • Użytkownik nie jest zalogowany.

Zawsze sprawdzaj stan weryfikacji użytkownika przed przechowywaniem danych za pomocą miejsca, aby uniemożliwić użytkownikom korzystanie z funkcji, która nie zadziała.

Widoczność dla użytkowników

Jako użytkownik możesz wyświetlać dane przechowywane w Twojej pamięci użytkownika na potrzeby wywoływanych działań. Możesz też usunąć dane przechowywane w pamięci użytkownika z konkretnej czynności lub zatrzymać zapamiętywanie Cię przez usługę.

Aby wyświetlić zapisane dane lub wyłączyć zapamiętywanie Cię 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 wyczyścić pamięć użytkownika.
  3. Przewiń do dołu strony:
    • Aby wyświetlić zawartość miejsca na dane użytkownika, kliknij [Wyświetl zapisane dane].
    • Aby zresetować dane usługi przechowywanej w pamięci użytkownika, kliknij Resetuj.
    • Aby usunąć dane przechowywane w pamięci użytkownika i wyłączyć zapamiętywanie Cię przez usługę, kliknij Stop action_name (nie zapisuj mnie).