2017-12-12 6 views
1

alexa-sdkを使用してノードにAlexaスキルを構築しています。私はユーザーの操作を処理するためにdialog modelを使用しています。私は、起動のリクエストからインテントのリクエストなど、新しいフローに沿って新しいrequest typesにいくらかの問題を抱えています。LaunchRequestをIntentRequestに委任するには、npmのalexa-sdkを使用します。

以下は、私のハンドラの例であり、私が理想的に望むものです。私の特定の用途は、ユーザーのいくつかの質問をしてから、彼らが答えた内容に基づいて異なる意図に送信したいということです。インテントでは、元々そのインテントに入ったかのようにリクエストオブジェクトにアクセスしたいので、ダイアログモデルがその作業を行うことができます。

const handlers = { 
    'LaunchRequest': function() { 
     this.emit('Entry'); // this does not do what I want 
    }, 
    'Entry': function() { 
     let request = this.event.request; // this is the launch request object. 
     // I would like to get the request object for Entry, like if the user started here 

     // ask some questions, potentially passing the torch to a new intent based on the answers 
    } 
}; 

だから、本来はその意思に要求を行ったユーザのような意図を「コール」する方法はありますか?申し訳ありませんが、ドキュメンテーションで明白な何かを見逃してしまった場合は、かなり徹底的に検索しましたが、たくさんのドキュメントがあります。 ps:私はもちろん、リクエストオブジェクトを手動で構築することができますが、私は本当に私が感じるべきではありません。

答えて

3

私は確かにあなたが求めているように意図を呼び出す方法がまだないと確信しています。

ダイアログdirectieves hereの構文の説明を通過した場合、それは言う:

ダイアログディレクティブを返すときに、あなたがインテントを変更することはできませんので、意図名とスロットのセットが送られた意図と一致する必要がありますあなたのスキルに。プロンプトで、あなたが「惹起」または「確認」スロットまたは意図することができ、あるいは代理人はあなたのためのダイアログを処理させるダイアログディレクティブを、返すとスキルビルダーに設定repromptsで

私が知る限り、特定の意図を引き起こす唯一の解決策は、ユーザーがそれを呼び出させることです。あなたはあなたの意図を引き起こす特定のutternaceを言うようにユーザを誘導することができます。

古いリクエストを保存する場合、session attributesを使用できます。 LaunchRequest全体を含むセッション属性を使ってLaunchの後にレスポンスを作成するだけです。

"sessionAttributes": { 
"oldRequest": this.event.request 
} 
+0

さて、私は、起動要求の要求、ユーザが意図をコールするので、ビットその後、私のアプリのダイアログを再構築するつもりです。あなたの時間をありがとう:) – MyrionSC2

関連する問題