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)
    
    広告ここから
    広告ここまで
    Home
    Search
    Bookmark