0

私が最後の方法は、前のスロット(被写体と日付)から値を取得し、予定を作成する必要があり以前のインテント(メソッド)に使用されたスロット値を取得し、現在のメソッドで使用しますか?

User: Alexa,create an appointment 
Alexa: please state the subject for appointment 
User : subject is {subject} 
Alexa: on which day? 
User : {Day} 
Alexa : Appointment has been created with {subject} on {day} 

..要件は前スロットの値を取得することであるAlexaのスキルの構築に取り組んでいます。 これまでのところ、現在のインテントのスロット値を取得できますが、以前のインテントのスロット値をフェッチして現在のメソッドで使用したいと思います。

例*

protected SpeechletResponse method1(Intent intent,Session session)throws 
Exception{ 
    SpeechletResponse response=null; 

Map<String, Slot> slots = intent.getSlots(); 
Slot example = slots.get(SampleSlot); 
String value=example.getValue().toString(); 
String output="something"; 

response = SpeechletResponseHelper.getSpeechletResponse(output, reprompt, 
true); 
    return response; 
} 

protected SpeechletResponse method2(Intent intent,Session session)throws 
Exception{ 
SpeechletResponse response=null; 

****How to fetch the slot value used for method1 and use it in method2? **** 

response = SpeechletResponseHelper.getSpeechletResponse(xxxx, reprompt, 
true); 
return response; 
} 

これは可能でしょうか?私はそれをどのように行うことができますか?

おかげで、よろしく

答えて

0

私はこのような私のクエリを達成するためにセッションを使用....

Map<String, Slot> slots = intent.getSlots(); 
Slot example = slots.get(SampleSlot); 
session.setAttributes(Sample_String); 
session.getAttributes(SampleSessionString); 
0

アミットはあなたがもし何らかの理由で、しかし、session.setAttributeを使用することができるはず、言ったようにsession.setAttributeで受け入れられないものを保持したい場合は、いつでもセッションが終了するまで、いつでも利用可能なフィールド変数を持つことができます。セッションが終了すると、データベースなしですべて消えます。

String output; 

    protected SpeechletResponse method1(Intent intent,Session session)throws 
    Exception{ 
     SpeechletResponse response=null; 

    Map<String, Slot> slots = intent.getSlots(); 
    Slot example = slots.get(SampleSlot); 
    String value=example.getValue().toString(); 
    output="something"; 

    response = SpeechletResponseHelper.getSpeechletResponse(output, reprompt, 
    true); 
     return response; 
    } 

    protected SpeechletResponse method2(Intent intent,Session session)throws 
    Exception{ 
    SpeechletResponse response=null; 

    ****How to fetch the slot value used for method1 and use it in method2? **** 

    response = SpeechletResponseHelper.getSpeechletResponse(output, reprompt, 
    true); 
    return response; 
    } 

私がしたすべては、任意の他の方法のためにそれを利用可能にする(方法外側)より高い範囲で可変output文字列を初期化するがありました。私が得た私のクエリに答えるために時間を割いて

+0

私の質問に答える時間をとってくれてありがとう、私はセッションを使ってそれを整理しました!! – Giridhari

関連する問題