Armazenamento do usuário

Em uma chamada de webhook, é possível armazenar valores de parâmetro para um usuário específico em sessões no armazenamento do usuário. A Ação pode usar esses valores armazenados mais tarde em solicitações e condições, e o código do webhook pode acessar valores no armazenamento de um usuário específico quando necessário.

O estado de armazenamento do usuário é transmitido em uma solicitação app.handle() e armazenado no objeto user.

Ler e gravar dados em várias conversas

Para atualizar ou definir um novo valor no armazenamento de usuários, atribua o valor ao campo params do objeto user em uma chamada de webhook. O exemplo a seguir define "exampleColor" como "red" no armazenamento do usuário:

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

Para acessar dados no armazenamento do usuário, atribua-os a uma variável em uma chamada de webhook. O exemplo a seguir extrai um valor de "exampleColor" no armazenamento do usuário:

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

Para remover um valor salvo, defina-o como null em uma chamada de webhook. O exemplo a seguir limpa o valor de "exampleColor" no armazenamento do usuário:

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

Referenciar valores armazenados em prompts

Você pode fazer referência a valores armazenados no armazenamento do usuário em um comando. Para fazer referência ao valor, use a sintaxe $user.params.PARAMETER_NAME, em que PARAMETER_NAME é o nome fornecido no webhook quando o parâmetro foi definido.

Por exemplo, você já armazenou um valor de cor no armazenamento do usuário como o parâmetro exampleColor. Para acessar esse valor em um prompt, referencie-o usando $user.params.exampleColor:

JSON

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

Referenciar valores armazenados em condições

Também é possível referenciar valores armazenados no armazenamento do usuário em conditions. Para fazer referência ao valor, use a sintaxe user.params.PARAMETER_NAME, em que PARAMETER_NAME é o nome fornecido no webhook quando o parâmetro foi definido.

Por exemplo, você já armazenou um valor de cor no armazenamento do usuário como o parâmetro exampleColor e quer fazer a correspondência dele com o valor "red" em uma condição. Na sua condição, você faz referência ao valor armazenado usando user.params.exampleColor. Sua expressão de condição ficará assim:

Sintaxe da condição

user.params.exampleColor == "red"
    

Expiração dos dados de armazenamento do usuário

Para usuários verificados, os dados armazenados no armazenamento do usuário expiram com base nas configurações da Atividade na Web e de apps e também podem ser apagados pela própria ação. Para usuários não verificados, o Google Assistente limpa o conteúdo do armazenamento do usuário no final da conversa.

O Actions on Google define o status de verificação do usuário no início de cada conversa com base em vários indicadores quando a conversa é iniciada. Por exemplo, um usuário que fez login no Google Assistente usando um dispositivo móvel tem um status de verificação de VERIFIED.

Confira a seguir os possíveis motivos para um usuário ter um status de verificação GUEST:

  • Os resultados personalizados estão desativados para o usuário.
  • O usuário desativou a Atividade na Web e de apps. Lembre-se de que alguns usuários podem desativar essa configuração no nível do domínio.
  • Se o Voice Match estiver ativado em um dispositivo e a correspondência falhar ou o usuário invocar o Google Assistente sem usar a voz, como tocar e manter pressionado um dispositivo Nest Home.
  • O usuário não está conectado.

Sempre verifique o status de verificação do usuário antes de armazenar dados com o armazenamento de usuários para evitar que usuários convidados interajam com um recurso que falhará para eles.

Visibilidade para os usuários

Como usuário, você pode conferir os dados no armazenamento do usuário referentes às ações que você invocar. Também é possível remover os dados de uma ação específica no armazenamento do usuário ou impedir que o serviço se lembre de você.

Para visualizar os dados armazenados ou impedir que um serviço se lembre de você, siga estas etapas:

  1. Acesse o diretório do Google Assistente.
  2. Encontre e selecione a ação para conferir ou limpar o armazenamento dos usuários.
  3. Role até a parte de baixo da página:
    • Para acessar o conteúdo do armazenamento do usuário, clique em [Ver dados armazenados].
    • Para redefinir os dados armazenados no armazenamento de usuários do serviço, clique em Redefinir.
    • Para remover dados no armazenamento de usuários e impedir que o serviço se lembre de você, clique em Impedir que action_name se lembre de você.