Interactive Canvas アクションに次のコールバックを実装できます。
onUpdate()
onUpdate()
コールバックは、Webhook からウェブアプリにデータを渡して更新します。
適切に実装する必要があります。このコールバックはサーバーサイドの
Interactive Canvas 開発のフルフィルメント モデルです。
onUpdate()
の詳細については、以下をご覧ください。
ウェブアプリを更新するためのデータを渡します。
onTtsMark()
onTtsMark()
コールバックは、カスタム <mark>
タグが
音声合成マークアップ言語(SSML)
テキスト読み上げ(TTS)中にユーザーに読み上げられます。Google Chat では
サーバーサイドとクライアントサイドの両方のフルフィルメント開発で onTtsMark()
を使用する
構築できます
次のスニペットでは、onTtsMark()
がウェブアプリのアニメーションを同期します。
対応する TTS 出力で結合します。アクションがユーザーに「
負けた」と正しい単語がスペルアウトされ、正しい文字が
できます。
次の例では、Webhook ハンドラ revealWord
にカスタム
ユーザーがゲームに負けたときに、レスポンスで次のようにマークします。
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()); }); …
その後、次のコード スニペットは onTtsMark()
コールバックを登録し、
revealCorrectWord()
関数を実行してマークの名前を更新します。
ウェブアプリの場合:
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()
onInputStatusChanged()
コールバックは、入力ステータスの変化を通知します。
Interactive Canvas アクションで行えます。入力ステータスの変化は
アシスタントがクエリを処理しているときに、マイクが開閉します。「
次のイベントによって入力ステータスが変化する可能性があります。
- アクションに話しかけているユーザー
- Android Google 検索アプリ(AGSA)でテキストを入力するユーザー
sendTextQuery()
API を使用してアクションにテキストクエリを送信するウェブアプリ- ホーム ストレージやその他のアシスタント イベントに書き込むアクション
このコールバックの主なユースケースは、アクションと やり取りできます。たとえば、ユーザーがインタラクティブ プレーヤーを 描画キャンバス ゲームを開始してマイクを開くと、ユーザーがゲームを中断している間、ゲームを一時停止できます。 が話す。または、マイクが開くまで待ってから、テキスト クエリを アシスタントが受信されたことを確認します。
この API は、次のステータスを報告します。
LISTENING
- マイクが開いていることを示します。IDLE
- マイクが閉じていることを示します。PROCESSING
- アシスタントが現在クエリを実行していることを示します。 マイクは閉じています。
API は、ステータスが変わるたびにアクションに入力ステータスを報告します。
状態間の遷移は可能ですが、一般的なフローは次のとおりです。
IDLE
>LISTENING
>PROCESSING
>IDLE
- ユーザーがクエリをすると、 クエリが処理され、マイクが閉じます。IDLE
>PROCESSING
>IDLE
- ウェブアプリはsendTextQuery()
API を使用します。 アクションにテキストクエリを送信しますIDLE
>LISTENING
>IDLE
- ユーザーはマイクをオンにしていますが、開いてはいません。 応答します。
アクションでこの機能を使用するには、ウェブアプリに onInputStatusChanged()
を追加してください
次のスニペットに例を示します。
onInputStatusChanged(inputStatus) {
console.log("The new input status is: ", inputStatus);
}
onInputStatusChanged()
コールバックは単一の列挙型パラメータを返します。
inputStatus
。この値を確認することで、現在の入力ステータスを確認できます。「
inputStatus
には、LISTENING
、PROCESSING
、または IDLE
を指定できます。
次に、onInputStatusChanged()
を callbacks
オブジェクトに追加して登録します。
次のスニペットをご覧ください。
/**
* 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);
}
}