Em uma chamada de webhook, é possível armazenar valores de parâmetros em várias sessões da mesma casa (com base no Home Graph) no armazenamento doméstico. Sua ação pode esses valores armazenados mais tarde em solicitações e condições, e seu webhook pode acessar valores no armazenamento doméstico de uma família específica quando necessário.
O estado do armazenamento doméstico é transmitido em uma solicitação app.handle()
e armazenado.
no objeto home
.
Limitações
O armazenamento do Google Home não pode ser usado com dispositivos móveis porque eles não fazem parte de uma casa
Gráfico. No código do webhook, use a capacidade do dispositivo HOME_STORAGE
.
ramificar a lógica de negócios com base no que o dispositivo do usuário é capaz de fazer.
Para usar o armazenamento do Google Home, faça o seguinte:
- No Console do Actions, acesse Implantar > Informações do diretório.
- Na seção Informações adicionais, marque a caixa Início Storage.
Ler e gravar dados de uma família
Para atualizar ou definir um novo valor no armazenamento do Google Home, atribua o valor a params
campo do objeto home
em uma chamada de webhook. O exemplo a seguir
define "exampleColor" para "vermelho" no armazenamento doméstico:
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" } } } }
Para acessar dados no armazenamento do Google Home, atribua-os a uma variável em um webhook a chamada. O exemplo a seguir recupera um valor de "exampleColor" em casa armazenamento:
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" } } } }
Para limpar um valor salvo anteriormente, defina o valor como null
em uma chamada de webhook.
O exemplo a seguir limpa o valor de "exampleColor" no armazenamento doméstico:
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": {} } } }
Referenciar valores armazenados em prompts
É possível referenciar valores armazenados no armazenamento do Google Home em um comando. Para fazer referência
o valor, use $home.params.PARAMETER_NAME
sintaxe, em que PARAMETER_NAME
é o nome dado na
webhook quando o parâmetro foi definido.
Por exemplo, você armazenou anteriormente um valor de cor no armazenamento do Google Home como
parâmetro exampleColor
. Para acessar esse valor em um comando, você faz referência a esse
usando $home.params.exampleColor
:
JSON
{ "candidates": [{ "first_simple": { "variants": [{ "speech": "Your favorite color is $home.params.exampleColor." }] } }] }
Fazer referência a valores armazenados em condições
Também é possível referenciar valores armazenados no armazenamento doméstico em conditions. Para
referenciar o valor, use o método home.params.PARAMETER_NAME
sintaxe, em que PARAMETER_NAME
é o nome dado na
webhook quando o parâmetro foi definido.
Por exemplo, você armazenou anteriormente um valor de cor no armazenamento do Google Home como
parâmetro exampleColor
, e você quer fazer a correspondência com o valor "red" em um
condição. Na condição, você faz referência ao valor armazenado usando
home.params.exampleColor
: A expressão de condição vai ficar
isso:
Sintaxe da condição
home.params.exampleColor == "red"
Expiração dos dados de armazenamento do Google Home
Os dados de armazenamento do Google Home são apagados após 90 dias consecutivos da Ação não ser invocado. Como invocar a ação em qualquer dispositivo associado ao Home Graph redefine o timer de 90 dias. Se uma estrutura de Home Graph for excluída, os dados de armazenamento domiciliar correspondentes sejam apagados.
Para ações que usam armazenamento em casa, os gerenciadores de estrutura do Home Graph podem limpar a casa armazenamento para estruturas gerenciadas na página da ação no diretório do Google Assistente:
- Encontre e selecione a ação que você quer conferir ou limpar o armazenamento do usuário.
- Role até a parte de baixo da página:
- Para remover os dados armazenados no Home Storage, clique em Parar action_name de me lembrar.
Quando o administrador de um dispositivo o dissocia da estrutura, o armazenamento doméstico é também dissociados. Os dados de armazenamento do Google Home continuam associados a um dispositivo mesmo que o gerente da estrutura mude, a menos que um gerente da estrutura a libere.
Dados de armazenamento doméstico no simulador
Ao testar sua ação usando o simulador no Console do Actions, os dados no armazenamento doméstico se comportam de maneira um pouco diferente dos dados dispositivo. O simulador é considerado parte do próprio Home Graph. Portanto, os dados não persistem em outros dispositivos que você tenha na rede. Além disso, a página inicial os dados de armazenamento não são mantidos nas sessões quando a opção Simular não verificado user está ativada.
Exemplo de interação
Aqui está um exemplo de interação de um usuário conectado na primeira invocação de a ação:
Consulta do usuário | Ok Google, fale com ExampleAction. |
---|---|
Resposta do Google Assistente | Obtenção de ExampleAction. |
Resposta do Google Assistente | Uma curiosidade: a ExampleAction é salva toda vez que você a reproduz. as outras pessoas da família podem continuar de onde você parou. |
Resposta de ExampleAction | Olá, usuário verificado. Você está no nível 0. Diga "Próxima", "Redefinir" ou "Cancelar". |
Consulta do usuário | Próxima. |
Resposta de ExampleAction | Você está no nível 1. |
Consulta do usuário | Sair. |
Quando o mesmo usuário verificado retornar à ação depois de algum tempo:
Consulta do usuário | Ok Google, fale com ExampleAction. |
---|---|
Resposta do Google Assistente | Obtenção de ExampleAction. |
Resposta de ExampleAction | Olá, usuário verificado. Você está no nível 1. Diga "Próxima", "Redefinir" ou "Cancelar". |
Consulta do usuário | Próxima. |
Resposta de ExampleAction | Você está no nível 2. |
Consulta do usuário | Sair. |
No dia seguinte, um usuário não verificado interage com a ação em outro dispositivo. da mesma casa (conforme especificado no Home Graph).
Consulta do usuário | Ok Google, fale com ExampleAction. |
---|---|
Resposta do Google Assistente | Obtenção de ExampleAction. |
Resposta do Google Assistente | Uma curiosidade: a ExampleAction é salva toda vez que você a reproduz. as outras pessoas da família podem continuar de onde você parou. |
Resposta de ExampleAction | Olá, usuário convidado. Você está no nível 2. Diga "Próxima", "Redefinir" ou "Cancelar". |
Consulta do usuário | Próxima. |
Resposta de ExampleAction | Você está no nível 3. |
Consulta do usuário | Sair. |