Search code examples
.netamazon-lex

Access Lex Chat bot from .net WebService


I have created a Lex Chatbot under AWS Services. Have it tested as well using Test Chat bot session.

I would like to create a Web Service on .net which can Send Request as Intent/Messages and Get response from same amazon lex chat bot.


Solution

  • FInally i got this working using nuget package Amazon.lex model. Below is the console application for getting response from my AWS chatbot

            Amazon.Lex.Model.PostTextRequest amazonPostRequest = new 
            Amazon.Lex.Model.PostTextRequest();
            amazonPostRequest.BotAlias = "BookATrip_VFirst";
            amazonPostRequest.BotName = "BookATrip_VFirst";
            amazonPostRequest.UserId = "BotAccessRestAPI";
            amazonPostRequest.InputText = "book a car";
    
    
            AmazonLexClient amazonLexClient = new AmazonLexClient("AKIA25U6KRJ7AO7MODNQ", "khAIm2l1zK94zUCeG+Gg/oACIIgCAKLBkEJUAEl2", Amazon.RegionEndpoint.USEast1);
    
            Task<PostTextResponse> amazonPostResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
            //Task<IAmazonLex> AmazonLexResponse = amazonLexClient.PostTextAsync(amazonPostRequest);
            while (amazonPostResponse.Status!=TaskStatus.RanToCompletion)
            {
                //just to wait for response
                Console.WriteLine(amazonPostResponse);
                Console.ReadLine();
            }
            //Console.WriteLine(amazonPostResponse.Result.ContentLength);
            //Console.WriteLine(amazonPostResponse.Result.DialogState);
            Console.WriteLine(amazonPostResponse.Result.HttpStatusCode);
            Console.WriteLine(amazonPostResponse.Result.IntentName);
            Console.WriteLine(amazonPostResponse.Result.Message);
            Console.WriteLine(amazonPostResponse.Result.MessageFormat);
            Console.WriteLine(amazonPostResponse.Result.SessionAttributes);
            Console.WriteLine(amazonPostResponse.Result.SessionId);
            Console.ReadLine();