Задача: создать бота, разместить на собственном сервере и зарегистрировать его.
Среда: Windows 10 с IDE Visual Studio 2019 Community.
Язык программирования: C#
Реализация
Установите шаблон BotBuilderVSIX.vsix, который вы скачали при выполнении предварительных требований.
В Visual Studio создайте проект бота с использованием шаблона эхо-бота на основе Bot Framework версии 4 и .NET Core 3.1. Выберите тип проекта AI Bots (Боты (ИИ)), чтобы отображались только шаблоны ботов.
После создания проекта нажимаем F5 и проверяем работу сервиса.
Изменить порт можно тут
Результат должен быть примерно такой
После проверки, что приложение запустилось, переходим к настройке эмулятора.
Со страницы https://github.com/Microsoft/BotFramework-Emulator/blob/master/README.md загружаем эмулятор.
Эмулятор Bot Framework — это классическое приложение, которое позволяет разработчикам локально или удаленно тестировать и отлаживать боты. С помощью эмулятора вы можете общаться с ботом и проверять сообщения, которые он отправляет и получает. Эмулятор отображает сообщения так, как они будут выглядеть в интерфейсе веб-чата, и регистрирует запросы и ответы JSON при обмене сообщениями с ботом.
Запускаем эмулятор
Чтобы подключиться к запущенному локально боту, щелкните Открыть бота. Добавьте скопированный ранее номер порта в следующий URL-адрес и вставьте полученный URL-адрес в поле «URL-адрес бота»:
http://localhost:номер_порта/api/messages
Нажимаем Connect и проверяем работу бота
Ngrok
Ngrok — это кросс-платформенное приложение, которое позволяет предоставлять веб-сервер, работающий на локальном компьютере, к Интернету. В сущности, мы будем использовать ngrok для пересылки сообщений из внешних каналов в Интернете непосредственно на локальный компьютер, чтобы разрешить отладку, в отличие от стандартной конечной точки обмена сообщениями, настроенной в портал Azure.
Установить можно с сайта https://ngrok.com/download
- Откройте терминал и перейдите в папку, в которой находится исполняемый файл ngrok .
- Запустите ngrok с помощью следующей команды, чтобы создать новый туннель.
ngrok http 5000 -host-header="localhost:5000"
Примечание: обратите внимание, что указанный порт является портом, на котором запущена программа-робот. Вы можете использовать любой порт localhost, который вы хотите.
Когда ngrok запустится, скопируйте и сохраните общедоступный URL-адрес пересылки для последующего использования.
Можно воспользоваться альтернативным способом: https://docs.microsoft.com/ru-ru/azure/bot-service/bot-service-debug-emulator?view=azure-bot-service-3.0&tabs=csharp
Регистрация бота на портале Azure
Далее нам нужно проверить нашего бота на портале Azure.
На главной странице портала находим «Все ресурсы»
Нажимаем добавить ресурс и ищем приложение Bot Channels Registration
Нажимаем «Создать».
- Дескриптор бота — идентификатор
- Группа ресурсов — если нет, то нажимаем «Создать» и создаем
- Расположение не меняем
- Конечная точка обмена сообщениями — указываем ранее полученный адрес в ngrok (https://*.ngrok.io/api/messages)
Обязательно не указываем код приложения.
После заполнения ранее указанных полей нажимаем «Создать»
После создания карточки результат в ресурсах должен быть примерно таким
В карточке выбираем «Параметры» и копируем Microsoft App ID и записать его в appsettings.json проекта.
Примечание: галочку «Включить конечную точку потоковой передачи» не нужно.
Далее на против Microsoft App ID нажимаем «Управление»
И создаем «Секрет клиента» копируем его и добавляем в файл appsettings.json
Перезапускаем наше в Visual Studio.
И тестируем нашего бота.
Статьи:
- https://docs.microsoft.com/ru-ru/azure/bot-service/dotnet/bot-builder-dotnet-sdk-quickstart?view=azure-bot-service-4.0&tabs=vs
- https://github.com/Microsoft/BotFramework-Emulator/blob/master/README.md
- https://docs.microsoft.com/ru-ru/azure/bot-service/bot-service-debug-channel-ngrok?view=azure-bot-service-4.0
- https://ngrok.com/