2016-06-24 1 views
1

ADAL (AuthBot)을 사용하여 인증 한 봇에서 작업 한 후 사후 인증은 사용자 입력을 가져와 LUIS로 보내 인 텐트/엔티티를 수집합니다. 나는 Sharepoint Online REST API에 보내는 URI를 만들기 위해 리턴 된 것을 사용한다. 사용자 입력이 유효하면 Sharepoint는 구문 분석 한 JSON을 반환하고 사용자에게 반환합니다.MessageController 외부 및 인증 후 LUIS 호출

인증 후 LUIS 클래스에 사용자 입력이 발생하는 중입니다. 내 MessageController에서 AuthBot ActionDialog를 호출합니다.

 if (message.Type == "Message") 
     { 
      return await Conversation.SendAsync(message,() => new ActionDialog()); 
     }   

는 ActionDialog 내에서, 나는 루이스 클래스에 메시지를 이동 이동하는 방법을 잘 모르겠어요

public async Task MessageReceivedAsync(IDialogContext context, IAwaitable<Message> item) 
    { 
     var message = await item; 
     if (message.Text == "logon") 
     { 
      if (string.IsNullOrEmpty(await context.GetAccessToken(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]))) 
      { 
       await context.Forward(new AzureAuthDialog(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]), this.ResumeAfterAuth, message, CancellationToken.None); 
      } 
      else 
      { 
       context.Wait(MessageReceivedAsync); 
      } 
     } 
     else if (string.IsNullOrEmpty(await context.GetAccessToken(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]))) 
     { 
      await context.Forward(new AzureAuthDialog(ConfigurationManager.AppSettings["ActiveDirectory.ResourceId"]), this.ResumeAfterAuth, message, CancellationToken.None); 
     } 
     else 
     { 
      //this is where I want to send the next user input from bot to LUIS class.     
     } 
    }  

루이스 클래스가 표준이며 다음과 같습니다

//Define the LuisModel that will be used. The LuisModel JSON file can be found at ~/json/letseat.json 
[LuisModel("ModelID", "ModelSecret")] 
[Serializable] 
public class LuisDialog : LuisDialog<object> 

하나를 아이디어? 감사.

답변

0

(코드를보고) AuthBot을 사용하고 있다고 가정합니다.

무엇을 추가해야하면 다음과 같다 : 단지 LUISDialog의 MessageReceived 구현에 메시지를 전달합니다

await base.MessageReceived(context, item); 

; 어떤 의도가 실행되어야 하는지를 이해하기 위해 LUIS에게 질의를 보낸다.

+0

감사합니다. Ejadib. 내 LUIS 클래스에 MessageReceived 행을 넣으 려한다고 가정합니다. –

+0

예, 맞습니다. –

+0

당신은 Ejadib을 락어요! 잘됐다. 고맙습니다!!!! –