繁体   English   中英

将 v4 机器人转换为自定义技能时缺少技能清单端点

[英]Skill manifest endpoint missing while converting v4 bot to a custom skill

我正在尝试将 v4 机器人转换为自定义技能。 包含所有文件的机器人按预期工作。 但它缺少将技能连接到虚拟助手所需的/api/skill/manifest端点。

更新问题

在 BotController.cs 文件中进行更改后,我的机器人抛出post 500 directline.PostACtivity error

在编辑 BotControler.cs 文件之前是这样的

[Route("api/messages")]
    [ApiController]
    public class BotController : ControllerBase
    {
        private readonly IBotFrameworkHttpAdapter Adapter;
        private readonly IBot Bot;

        public BotController(IBotFrameworkHttpAdapter adapter, IBot bot)
        {
            Adapter = adapter;
            Bot = bot;
        }

        [HttpPost]
        public async Task PostAsync()
        {
            // Delegate the processing of the HTTP POST to the adapter.
            // The adapter will invoke the bot.
            await Adapter.ProcessAsync(Request, Response, Bot);
        }
    } 

像这样更改后,机器人没有响应

 [ApiController]
public class BotController : SkillController
{
    public BotController(IServiceProvider serviceProvider, BotSettingsBase botSettings)
        : base(serviceProvider, botSettings)
    { }
}

在这里也发现了一个错误 BotController.cs

在此处输入图像描述

添加包

添加Microsoft.Bot.Builder.SolutionsMicrosoft.Bot.Builder.Skills NuGet 包。

创建技能适配器

public class MySkillAdapter : SkillAdapter
{
    public MySkillAdapter(
        BotSettings settings,
        ICredentialProvider credentialProvider,
        BotStateSet botStateSet,
        ResponseManager responseManager,
        IBotTelemetryClient telemetryClient,
        UserState userState) : base(credentialProvider)
    {
        //
        Use(new SkillMiddleware(userState));
    }
}

将瞬态添加到Startup.cs

services.AddTransient<IBotFrameworkHttpAdapter, DefaultAdapter>();
services.AddTransient<SkillAdapter, MySkillAdapter>();

更新BotController.cs

现在您可以更新您的SkillController以从包含api/skill/messagesapi/skill/manifest端点的 SkillController 派生。

[ApiController]
public class BotController : SkillController
{
  public BotController(IServiceProvider serviceProvider, BotSettingsBase botSettings)
      : base(serviceProvider, botSettings)
  { }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM