[英]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.Solutions
和Microsoft.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/messages
和api/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.