Доступ к боту Lex Chat из .net WebService

Я создал чат-бота Lex в рамках сервисов AWS. Также протестируйте его с помощью сеанса бота Test Chat.

Я хотел бы создать веб-службу в .net, которая может отправлять запрос как намерение / сообщения и получать ответ от того же чат-бота amazon lex.


person user3355488    schedule 06.06.2020    source источник
comment
Я создал сервис Fedrated для AWSognito и назначил политику для RunLexBots. Мне сложно найти способ получить доступ к сервису AWS Lex и отправить сообщение с помощью AppClientID и PoolID.   -  person user3355488    schedule 06.06.2020
comment
Ниже приведен ответ, который я получаю, используя свой код System.Runtime.CompilerServices.AsyncTaskMethodBuilder1+AsyncStateMachineBox1 [Amazon.Lex.Model.PostTextResponse, Amazon.Runtime.Internal.MetricsHandler + ‹InvokeAsync› d__1`1 [Amazon.LexponseText].   -  person user3355488    schedule 08.06.2020
comment
var amazonPostRequest = новый Amazon.Lex.Model.PostTextRequest (); amazonPostRequest.BotAlias ​​= XX; amazonPostRequest.BotName = XX; amazonPostRequest.UserId = XX; amazonPostRequest.InputText = забронировать машину; var amazonLexClient = новый AmazonLexClient (AccessKey, SecretKey, Amazon.RegionEndpoint.USEast1); Задача ‹PostTextResponse› amazonPostResponse = amazonLexClient.PostTextAsync (amazonPostRequest); Console.WriteLine (amazonPostResponse.ToString ());   -  person user3355488    schedule 08.06.2020


Ответы (1)


Наконец, я получил эту работу, используя модель пакета nuget Amazon.lex. Ниже показано консольное приложение для получения ответа от моего чат-бота AWS.

        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();
person user3355488    schedule 08.06.2020