私はAlexaスキルに取り組んでいます。バックグラウンドでスクリプトを実行したり、テレビを起動したり、Bluetoothデバイスなどを接続したりすることがあります。すべての自動化が完了すると、成功した応答は最大20秒以上かかることがあります。長期的なAlexaレスポンスにボーカル "Ajax Spinner"を追加する
ウェブ上では、実行時間が長いリクエストがある場合、私たちはプログレスバー、またはアニメーションスピナーを待っていることを伝えるメッセージを表示したり、プロセスが進行中であることに慣れています。私はAlexaに似たものが必要です。
私はAlexaがHTTP要求が発生する前と応答が1回受信される前に、1度だけTWICEに応答したいと思います。会話の例:
[ユーザー]:Alexa、[アプリ名]に劇場モードに切り替えます。
[Alexa] :(直ちに)私はそれをしています!ハングアップします。
(... 20秒後...)
は[アレクサ]:完了!シアターモードが正常に起動しました。楽しい! http://jsfiddle.net/9gmszmku/embedded/js/
抜粋:
// ================ // [TODO] RESPONSE HERE: Alexa says: "I'm on it" or "hang on one second..." before getting the response from the http request // ================ // this request may take many seconds!!!! Ain't nobody got time for staring at Echo for a response!!! var req = http.request(options, (res) => { console.log(`STATUS: ${res.statusCode}`); console.log(`HEADERS: ${JSON.stringify(res.headers)}`); res.setEncoding('utf8'); var rawData = ''; res.on('data', (chunk) => rawData += chunk); res.on('end',() => { try { var parsedData = JSON.parse(rawData); console.log(parsedData); context.succeed(generateResponse(buildSpeechletResponse(parsedData.message, true), {})); } catch (e) { context.succeed(generateResponse(buildSpeechletResponse("Error Parsing", true), {})); } });
基本的に、私はアレクサがセッションを閉じずに先行対応し、再び機能一度持っていると思います、私はここにラムダ上で実行されているいくつかのコードを持っている
完了です。