2017-12-12 14 views
1

alexa-sdk을 사용하여 노드에 Alexa 스킬을 구축 중입니다. 사용자 상호 작용을 처리하기 위해 dialog model을 사용하고 있습니다. 실행 요청에서 의도 요청과 같이 흐름을 새로운 request types으로 전달하는 데 문제가 있습니다.Nunch의 alexa-sdk를 사용하여 LaunchRequest를 위임 할 수있는 방법

다음은 내가 가장 좋아하는 핸들러의 예입니다. 나의 특정한 유스 케이스는 사용자의 질문 몇 가지를 물어보고 대답에 따라 다른 의도로 보내고 싶다. 의도에서 원래 요청을 입력 한 것처럼 요청 개체에 대한 액세스 권한을 갖고 싶기 때문에 대화 모델이 작업을 수행 할 수 있습니다.

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 
    } 
}; 

그래서 사용자가 원래 의도 한대로 요청한 것처럼 "호출"할 수있는 방법이 있습니까? 미안 문서에서 명백한 것을 발견하지 못했다면 꽤 철저히 조사했지만 많은 문서가 있습니다. 추신 : 물론 수동으로 요청 개체를 구성 할 수 있지만 정말 기분이 안된다.

답변

3

나는 당신이 묻고있는 것처럼 아직 의도를 부르려는 방법이 없다고 확신한다.

당신이 대화 directieves here의 구문 설명을 통해 이동하는 경우는 말한다 : 당신이 대화 지시어를 반환 할 때 의도 이름 있도록 의도를 변경하고 슬롯으로 설정할 수 없습니다

참고 보낸 의도와 일치해야합니다 당신의 기술에. 프롬프트에 당신이 '야기가'또는 '확인'슬롯이나 의도 할 수있다, 또는 대리인이 당신을 위해 대화 상자를 처리 할 수 ​​있도록 대화 상자 지시를 반환하고, 스킬 빌더에서 설정 reprompts와

.

알다시피 특정 의도를 유발하는 유일한 해결책은 사용자가 호출하도록하는 것입니다. 당신은 당신의 의도를 촉발시킬 특정 utternace를 말하도록 사용자를 안내 할 수 있습니다.

이전 요청을 저장하는 경우 session attributes을 사용할 수 있습니다. LaunchRequest 전체를 포함하는 세션 속성으로 시작한 후에 응답을 작성하십시오.

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

좋아요, 그럼 내 응용 프로그램의 대화 상자를 약간 재구성 할 예정이므로 시작 요청에서 사용자가 의도를 호출하도록 요청합니다. 시간 내 주셔서 감사합니다 :) – MyrionSC2