2017-01-31 5 views
0

사용자 응답을 수신하는 스킬을 만들려고합니다. 웬일인지, 나는 항상 사용자 대답을 붙잡을 수 없다. Alexa, open MyApp and start chat Alexa Skill 앱에서 사용자 응답/응답을 잡는 방법은 무엇입니까?

  • 그리고 알렉사 내가 세션을 확인하고 경우에 이전보고, 그것으로 뭔가를 할 그런
  • New chat session started를 대답하지만, 그것은 '아무튼 :

    • 채팅 세션이 시작, 내가 말할 때 정말 일하지 않아.

    설치가 잘못되었습니다. 코드가 맞다고 생각합니다. intents이 잘못 설정되었을 수 있습니다.

    코드는 직설적입니다.

  • +0

    사용자가 기술을 시작한 후에 무엇을 기대합니까? 그리고 요청과 응답을 앞뒤로 볼 수있는 솔루션을 찾고 있습니까? –

    +0

    @JohnKelvie 꽤 많이 있습니다. 사용자 응답을 일부 백엔드 서비스에 보내고 회신을 반환 한 다음 다른 사용자 입력을 기다리고 대화처럼 기다립니다. 제 문제는 초기 사용자가 응답하지 않는다는 것입니다. – Patrioticcow

    답변

    0

    알아낼 수 있습니다.

    1. , 사용자 정의 슬롯에 단어와 구문의 무리를 추가 발언 ChatSession {Reply}
    2. 를 추가 일부 온라인 생성기를 사용합니다.
    0

    exports.handler = (event, context) => 
     
        { 
     
         // if the session is old, 
     
         if (event.session.new === false) { 
     
          // get the user reply 
     
          // this doesn't seem to allways work 
     
          var userReply = event.request.intent.slots.Reply.value; 
     
         } 
     
    
     
         try { 
     
          switch (event.request.type) { 
     
           case "LaunchRequest": 
     
            // do nothing here 
     
            break; 
     
           case "IntentRequest": 
     
            switch (event.request.intent.name) { 
     
             case "ChatSession": 
     
    
     
              // the chat session starts, when I say: Alexa, open MyApp and start chat. 
     
              // this works, and the session seems to remain open, because Alexa waits for me to say something else 
     
              alexaReplyes({noCard: true, noNewSession: true, reply: 'New chat session started'}); 
     
    
     
              break; 
     
             default: 
     
              throw "Invalid intent" 
     
            } 
     
    
     
            break; 
     
           case "SessionEndedRequest": 
     
            // do nothing here 
     
            break; 
     
           default: 
     
            context.fail(`INVALID REQUEST TYPE`) 
     
          } 
     
         } catch (error) { 
     
          context.fail(`Exception: ${error}`) 
     
         } 
     
        }
    { 
     
        "intents": [ 
     
         { 
     
          "intent": "ChatSession", 
     
          "slots": [ 
     
           { 
     
            "name": "Reply", 
     
            "type": "REPLIES" 
     
           } 
     
          ] 
     
         } 
     
        ] 
     
    } 
     
    
     
    
     
    
     
    ChatSession start chat

    , 의도 설정이 올바르지 않습니다. 몇 항목 : 그것은 당신이 사용자가 말을 기대하는 방법에 대한 더 많은 발언을 추가 나을)
    ChatSession start chat {Reply}

    2 :

    1)이 같은 발언에 슬롯을 포함해야 예 :
    ChatSession Yes {Reply}

    희망 하시겠습니까?

    +0

    'LITERAL'유형을 사용하려고했습니다. 그러나 문서에서 그것은'REPLIES'에서 커스텀 타입을 사용할 수 있고'REPLIES'에서 발견되지 않은 어떤 발화도'LITERAL'처럼 전달 될 것이라고 말합니다. 나는 회신에서 모든 단어를 포착하고 싶다. 그래서'ChatSession {Reply}'이 그렇게해야한다고 생각합니다. 뭐라고 생각하니? – Patrioticcow

    +0

    당신의 기술이 무엇인지 모른 채, 나는 확실히 말할 수 없습니다. 그러나 회신이 자유 형식 (사용자가 무엇이든 말할 수 있음)으로되어 있다면, LITERAL은 갈 길이 멀다. 제한된 입력 집합 (예 : 빨강, 초록, 파랑 ​​또는 기타 값 목록과 같은 열거 형)을 의미하는 경우 맞춤 슬롯 유형이 사용 방법입니다. –