Speicherplatz des Nutzers

In einem Webhook-Aufruf können Sie Parameterwerte für einen bestimmten Nutzer sitzungsübergreifend im Nutzerspeicher speichern. Deine Aktion kann diese gespeicherten Werte später in Aufforderungen und Bedingungen verwenden und dein Webhook-Code kann bei Bedarf auf Werte im Nutzerspeicher für einen bestimmten Nutzer zugreifen.

Der Status des Nutzerspeichers wird in einer app.handle()-Anfrage übergeben und im Objekt user gespeichert.

Daten in Konversationen lesen und schreiben

Wenn Sie den Nutzerspeicher aktualisieren oder einen neuen Wert festlegen möchten, weisen Sie den Wert in einem Webhook-Aufruf dem Feld params des Objekts user zu. Im folgenden Beispiel wird „exampleColor“ im Nutzerspeicher auf „red“ gesetzt:

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"
      }
    }
  }
}
    

Für den Zugriff auf Daten im Nutzerspeicher weisen Sie diese einer Variablen in einem Webhook-Aufruf zu. Im folgenden Beispiel wird ein Wert aus "exampleColor" im Nutzerspeicher abgerufen:

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"
      }
    }
  }
}
    

Wenn Sie einen zuvor gespeicherten Wert löschen möchten, legen Sie den Wert in einem Webhook-Aufruf auf null fest. Im folgenden Beispiel wird der Wert von „exampleColor“ im Nutzerspeicher gelöscht:

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"
      }
    }
  }
}
    

Auf gespeicherte Werte in Prompts verweisen

Sie können in einer Eingabeaufforderung auf Werte verweisen, die im Nutzerspeicher gespeichert sind. Verwenden Sie die Syntax $user.params.PARAMETER_NAME, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook beim Festlegen des Parameters angegeben wurde.

Beispiel: Sie haben zuvor einen Farbwert im Nutzerspeicher als Parameter exampleColor gespeichert. Um in einer Eingabeaufforderung auf diesen Wert zuzugreifen, verweisen Sie mit $user.params.exampleColor auf diesen Wert:

JSON

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

Auf gespeicherte Werte innerhalb von Bedingungen verweisen

Sie können auch unter conditions auf Werte verweisen, die im Nutzerspeicher gespeichert sind. Verwenden Sie die user.params.PARAMETER_NAME-Syntax, um auf den Wert zu verweisen. Dabei ist PARAMETER_NAME der Name, der im Webhook beim Festlegen des Parameters angegeben wurde.

Beispiel: Sie haben zuvor einen Farbwert im Nutzerspeicher als Parameter exampleColor gespeichert und möchten ihn mit dem Wert „red“ in einer Bedingung abgleichen. In der Bedingung verweisen Sie mit user.params.exampleColor auf den gespeicherten Wert. Ihr Bedingungsausdruck sieht dann so aus:

Bedingungssyntax

user.params.exampleColor == "red"
    

Ablauf von Daten zum Nutzerspeicher

Bei bestätigten Nutzern laufen die im Nutzerspeicher gespeicherten Daten gemäß den Einstellungen ihrer Web- & App-Aktivitäten ab und können auch durch die Aktion selbst gelöscht werden. Bei nicht bestätigten Nutzern löscht Assistant den Inhalt des Nutzerspeichers am Ende der Unterhaltung.

Actions on Google legt den Bestätigungsstatus des Nutzers zu Beginn jeder Unterhaltung anhand verschiedener Indikatoren fest, wenn die Unterhaltung beginnt. Beispiel: Ein Nutzer, der sich auf seinem Mobilgerät in Google Assistant angemeldet hat, hat den Bestätigungsstatus VERIFIED.

Wenn ein Nutzer den Bestätigungsstatus GUEST hat, kann das folgende Gründe haben:

  • Der Nutzer hat persönliche Ergebnisse deaktiviert.
  • Der Nutzer hat seine Web- & App-Aktivitäten deaktiviert. Beachten Sie, dass diese Einstellung bei einigen Nutzern auf Domainebene deaktiviert sein kann.
  • Wenn auf einem Gerät Voice Match aktiviert ist und der Abgleich fehlschlägt oder der Nutzer Assistant ohne Verwendung einer Stimme aufruft (z. B. durch langes Drücken auf ein Nest Home-Gerät).
  • Der Nutzer ist nicht angemeldet.

Prüfen Sie immer den Bestätigungsstatus des Nutzers, bevor Sie Daten im Nutzerspeicher speichern, um zu verhindern, dass Gastnutzer mit einer Funktion interagieren, die für sie fehlschlägt.

Sichtbarkeit für Nutzer

Als Nutzer können Sie sich in Ihrem Nutzerspeicher gespeicherte Daten für von Ihnen aufgerufene Aktionen ansehen. Sie können auch Daten, die in Ihrem Nutzerspeicher gespeichert sind, aus einer bestimmten Aktion entfernen oder den Dienst daran hindern, sich an Sie zu erinnern.

So können Sie Ihre gespeicherten Daten ansehen oder verhindern, dass sich ein Dienst an Sie erinnert:

  1. Gehen Sie zum Assistant-Verzeichnis.
  2. Wähle die Aktion aus, für die du deinen Nutzerspeicherplatz ansehen oder löschen möchtest.
  3. Scrollen Sie zum Ende der Seite:
    • Klicken Sie auf [Gespeicherte Daten ansehen], um den Inhalt Ihres Nutzerspeichers anzusehen.
    • Um die in Ihrem Nutzerspeicher gespeicherten Daten für den Dienst zurückzusetzen, klicken Sie auf Zurücksetzen.
    • Wenn Sie die in Ihrem Nutzerspeicher gespeicherten Daten entfernen und verhindern möchten, dass sich der Dienst an Sie erinnert, klicken Sie auf Verhindern, dass sich action_name an mich erinnert.