Отсутствует конечная точка манифеста при преобразовании бота v4 в пользовательский навык - PullRequest
0 голосов
/ 31 октября 2019

Я пытаюсь конвертировать бота 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

enter image description here

1 Ответ

0 голосов
/ 31 октября 2019

Добавить пакеты

Добавить Microsoft.Bot.Builder.Solutions и Microsoft.Bot.Builder.Skills NuGet пакеты.

Создать SkillAdapter

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 конечные точки.

[ApiController]
public class BotController : SkillController
{
  public BotController(IServiceProvider serviceProvider, BotSettingsBase botSettings)
      : base(serviceProvider, botSettings)
  { }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...