Amazon AlexaAWS

alexa-sdkでユーザーに質問をする処理を書く

この記事は一人Alexa Skills Kit for Node.js Advent Calendar 2017の19日目の記事です。 「車のサイズはどうしますか?」や「いつ出発しますか?」のような簡単な質問をAlexa […]

広告ここから
広告ここまで

この記事は一人Alexa Skills Kit for Node.js Advent Calendar 2017の19日目の記事です。

「車のサイズはどうしますか?」や「いつ出発しますか?」のような簡単な質問をAlexa Skillからユーザーにする場合、alexa-sdkでは:askを使用します。

const speechOutput = 'Speech output'
const repromptSpeech = 'reprompt'
this.emit(':ask', speechOutput, repromptSpeech)

:tellの場合は2つだった引数が3つに増えました。
3つ目の引数はユーザーに返答を促すテキストなどを入れるようにします。
ユーザーからの返答が一定秒数(8秒程度だった記憶)を越えた場合、1度だけAlexaが3つ目の引数の内容で話しかけてくれます。
それでも返事がなかった場合は会話を終了したいものと判断してセッションが終了します。

質問に対する返答の値はどこでうけとるか?

回答をうけとるためのIntentを用意しておきましょう。「サイズ」や「時間」などの回答部分が変数となりますので、Slotとして登録する必要があります。

この設定ができている状態であれば、あとは以下のようなコードで値を受け取ることができます。

const slots = this.event.request.intent.slots
const speechOutput = `Your 1st answer is ${slots['answer1']`
this.emit(':tell', speechOutput)

ブックマークや限定記事(予定)など

WP Kyotoサポーター募集中

WordPressやフロントエンドアプリのホスティング、Algolia・AWSなどのサービス利用料を支援する「WP Kyotoサポーター」を募集しています。
月額または年額の有料プランを契約すると、ブックマーク機能などのサポーター限定機能がご利用いただけます。

14日間のトライアルも用意しておりますので、「このサイトよく見るな」という方はぜひご検討ください。

広告ここから
広告ここまで

Related Category posts