まず、開発中にalexa-sdkを使用していると仮定します。あなたはそれがあることを知っていない場合は、このリンクをチェックアウトしてください:
https://github.com/alexa/alexa-skills-kit-sdk-for-nodejs
を、あなたの意思スキーマであなたのスキルに質問を破ることができ、複数の方法があります。 「QuestionOneIntent」や「QuestionTwoIntent」などの個別の意図、または個々の質問に対応するスロットインテントの「QuestionIntent」のいずれかです。元のポストは情報をあまり与えていないので、どの構造が最適な設定であるかはわかりません。
alexa-sdkには2つの一般的な応答があります。 ":tell"はAlexaに応答を言い、すぐにアイドル状態に戻ります(あなたの話を聞いていない)。 ":ask"はレスポンスを出し、8秒待ってから別のコマンドを出すのを待っている間に再確認メッセージをフォローアップします。会話の中で生きているセッションを維持するためとして
、単にあなたのセッションが開いたままにし、ユーザーがより多くの質問をし続けることができるためにこれができるようになります
var speechOutput = "This is the answer to Question"
var speechOutputReprompt = "Do you have any more questions?"
this.emit(":ask", speechOutput, speechOutputReprompt)
を使用して応答を発することができました。再呼び出しに「いいえ」と答えた場合、セッションを閉じる別のインテントを作成しなければなりません。したがって、shouldEndSession変数がtrueになります。コードを構成する方法の例を次に示します。
"QuestionIntent": function(){
var responseName = ""
var slots = this.event.request.intent.slots
for (var slot in slots){
if(slots[slot].value != undefined){
responseName = slots[slot].name;
switch(responseName){
case "QuestionOneIntent":
var QuestionOneAnswer = "Answer to question one";
this.emit(":tell", QuestionOneAnswer);
break;
case "QuestionTwoIntent":
var QuestionTwoAnswer = "Answer to question two";
this.emit(":ask", QuestionTwoAnswer, QuestionTwoAnswerReprompt);
break;
default:
console.log("error");
break;
}
}
}
}