É possível implementar os seguintes callbacks na ação da tela interativa:
onUpdate()
O callback onUpdate()
transmite dados do webhook ao seu app da Web para atualização
o app da Web adequadamente. Use esse callback somente com o servidor
modelo de fulfillment do desenvolvimento de tela interativa.
Para mais informações sobre onUpdate()
, consulte
Transmitir dados para atualizar o app da Web.
onTtsMark()
O callback onTtsMark()
é chamado quando tags <mark>
personalizadas incluídas na
Linguagem de marcação de síntese de fala (SSML, na sigla em inglês)
da sua resposta são lidas para o usuário durante a conversão de texto em voz (TTS). Você pode
usar onTtsMark()
no desenvolvimento de fulfillment do lado do servidor e do cliente
de modelos de machine learning.
Nos snippets abaixo, o onTtsMark()
sincroniza a animação do app da Web.
com a saída TTS correspondente. Quando a ação disser ao usuário: "Desculpe,
que você perdeu", o aplicativo da web soletra a palavra correta e exibe as letras para
o usuário.
No exemplo a seguir, o gerenciador de webhook revealWord
inclui um
marca na resposta ao usuário quando ele perder o jogo:
JavaScript
… app.handle('revealWord', conv => { conv.add(new Simple(`<speak>Sorry, you lost.<mark name="REVEAL_WORD"/> The word is ${conv.session.params.word}.</speak>`)); conv.add(new Canvas()); }); …
Em seguida, o snippet de código a seguir registra o callback onTtsMark()
, verifica a
da marca e executa a função revealCorrectWord()
, que atualiza
app da Web:
JavaScript
… setCallbacks() { // declare Assistant Canvas Action callbacks const callbacks = { onTtsMark(markName) { if (markName === 'REVEAL_WORD') { // display the correct word to the user that.revealCorrectWord(); } }, } callbacks.onUpdate.bind(this); } …
onInputStatusChanged()
O callback onInputStatusChanged()
notifica quando o status da entrada muda.
na ação de tela interativa. As mudanças de status de entrada indicam quando
microfone abre e fecha ou quando o Google Assistente está processando uma consulta. A
seguintes eventos podem causar a mudança do status da entrada:
- O usuário falando com sua Ação
- O usuário inserindo texto no app Pesquisa Google para Android (AGSA)
- O app da Web usando a API
sendTextQuery()
para enviar uma consulta de texto à ação - A ação gravando no armazenamento do Google Home e outros eventos do Google Assistente
O principal caso de uso desse callback é sincronizar a ação com o as interações por voz do usuário. Por exemplo, se um usuário estiver jogando um jogo Jogo do Canvas e abre o microfone, você pode pausar o jogo enquanto o usuário fala. Também é possível aguardar até que o microfone esteja aberto para enviar uma consulta de texto para ao Google Assistente para garantir o recebimento.
Essa API informa os seguintes status:
LISTENING
: indica que o microfone está aberto.IDLE
: indica que o microfone está fechado.PROCESSING
: indica que o Google Assistente está executando uma consulta no momento. o microfone está fechado.
A API informa o status da entrada para a ação sempre que o status muda.
Embora qualquer transição entre estados seja possível, os seguintes fluxos são comuns:
IDLE
>LISTENING
>PROCESSING
>IDLE
: o usuário faz uma consulta, a consulta é processada e o microfone é fechado.IDLE
>PROCESSING
>IDLE
: o app da Web usa a APIsendTextQuery()
. para enviar uma consulta de texto à ação.IDLE
>LISTENING
>IDLE
: o usuário abre o microfone, mas não dizer uma consulta.
Para usar esse recurso na ação, adicione onInputStatusChanged()
ao app da Web
conforme mostrado no snippet a seguir:
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
}
O callback onInputStatusChanged()
transmite de volta um único parâmetro de tipo enumerado.
inputStatus
. Verifique esse valor para saber o status atual da entrada. A
inputStatus
pode ser LISTENING
, PROCESSING
ou IDLE
.
Em seguida, adicione onInputStatusChanged()
ao objeto callbacks
para registrá-lo, conforme
como mostrado no seguinte snippet:
/**
* Register all callbacks used by the Interactive Canvas Action
* executed during game creation time.
*/
setCallbacks() {
const that = this;
// Declare the Interactive Canvas action callbacks.
const callbacks = {
onUpdate(data) {
console.log('Received data', data);
},
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
},
};
// Called by the Interactive Canvas web app once web app has loaded to
// register callbacks.
this.canvas.ready(callbacks);
}
}