C# 如何在C中使用AWSSDKCore.dll和AWSSDKLex.dll获取服务器下所有LexChatBot的信息#

C# 如何在C中使用AWSSDKCore.dll和AWSSDKLex.dll获取服务器下所有LexChatBot的信息#,c#,amazon-web-services,amazon-lex,aws-lex,C#,Amazon Web Services,Amazon Lex,Aws Lex,最近在C#中使用Lex时,我引用了AWSCore.dll和AWSLex.dll,并且仍然试图获得一个方法,公开我在Aamazon服务器中创建的所有可用LexChatBot var amazonPostRequest = new Amazon.Lex.Model.PostContentRequest(); var amazonPostResponse = new Amazon.Lex.Model.PostContentResponse(); 使用这两种方法获取所有其他信息。请求bot

最近在C#中使用Lex时,我引用了AWSCore.dll和AWSLex.dll,并且仍然试图获得一个方法,公开我在Aamazon服务器中创建的所有可用LexChatBot

  var amazonPostRequest = new Amazon.Lex.Model.PostContentRequest();

  var amazonPostResponse = new Amazon.Lex.Model.PostContentResponse();

使用这两种方法获取所有其他信息。请求bot name和alias中的方法用于设置,没有响应方法用于在服务器中获取可用的Lexchatbots。

我不认为Lex SDK直接支持此调用

使用AWS Lex REST API获取机器人程序列表:

GEThttps:///bots/


经过长时间的研究,我找到了问题的答案,它可能会帮助别人

首先,我们需要通过Nuget添加AWSSDK.LexModelBuildingService。这将添加对DLL的引用

因此,所有方法都已公开。我们需要创建GetBotsRequest和GetBotsResponse方法

var botRequest = new Amazon.LexModelBuildingService.Model.GetBotsRequest();
var botResponse = new Amazon.LexModelBuildingService.Model.GetBotsResponse();
然后我们需要调用lex模型构建服务客户端

var amazonmodel = new AmazonLexModelBuildingServiceClient("YourAccesKeyId","YourSecretAccessKey",Amazon.RegionEndpoint.USEast1);
然后我们可以得到GetBots()的内置方法的响应

我们将获得机器人元数据列表

List<Amazon.LexModelBuildingService.Model.BotMetadata> bots = botResponse.Bots;
List bots=botResponse.bots;
创建的每个机器人的详细信息将在机器人列表数组中提供 在LexModelBuildingService dll中,几乎所有的方法都可以从Lex配置中获取详细信息

注:
  • 在AWS中的IAM(身份访问管理)中,我们需要在策略部分中授予访问have Lex组件的权限。AWSLexFullAccess 或 至少arn:aws:lex:region:account id:bot:*策略中的访问权限

  • 您必须使用
    HttpClient
    来调用api。我链接的站点向您展示了如何进行身份验证,答案显示了要调用的方法。我使用另一个dll找到了答案。无论如何,谢谢你的关心。我认为调用HttpClient是不必要的,因为AWS本身提供了这些方法
    List<Amazon.LexModelBuildingService.Model.BotMetadata> bots = botResponse.Bots;