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>
하나를 아이디어? 감사.
감사합니다. Ejadib. 내 LUIS 클래스에 MessageReceived 행을 넣으 려한다고 가정합니다. –
예, 맞습니다. –
당신은 Ejadib을 락어요! 잘됐다. 고맙습니다!!!! –