MSFT Echo Bot, модифицированный для проактивных сообщений, генерирует исключение несуществующего Teams Connector v1.0.0 - PullRequest
0 голосов
/ 17 октября 2019

У меня есть простой Microsoft Bot, где их EchoBot был модифицирован для отправки проактивных сообщений.

Проблема, с которой я сталкиваюсь, заключается в том, что бот зависит от соединителя команд v0.9.0 (последняя стабильная версия), но когда бот получает запрос POST к своей конечной точке API, он генерирует исключение FileNotFoundException, сообщающее, что соединитель команды v1. 0.0 не найдено.

Одна проблема заключается в том, что MSFT не имеет коннектора команд v1.0.0 и, кроме того, проект был настроен для зависимости v0.9.0.

Кто-нибудь знает, как я могу это исправить? Я попытался опубликовать в сообществе VS2019 на Windows и Mac и получить тот же результат.

Вот конечная точка POST, которую я добавил к базовому шаблону MSFT EchoBot


        [Route("api")]
        [HttpPost]
        public async Task<IActionResult> Post([FromBody] WebServicePrompt prompt)
        {

                var message = Activity.CreateMessageActivity();
                message.Text = "Hello!";


                var conversationParameters = new ConversationParameters
                {
                    IsGroup = true,
                    ChannelData = new TeamsChannelData
                    {
                        Channel = new ChannelInfo(prompt.ChannelId),
                    },
                    Activity = (Activity)message
                };

                var serviceUrl = "https://smba.trafficmanager.net/amer/";
                MicrosoftAppCredentials.TrustServiceUrl(serviceUrl, DateTime.Now.AddDays(7));
                var account = new MicrosoftAppCredentials("X", "Y");
                var connectorClient = new ConnectorClient(new Uri(serviceUrl), account);
                var response = await connectorClient.Conversations.CreateConversationAsync(conversationParameters);

                // Let the caller know proactive messages have been sent
                return new ContentResult()
                {
                    Content = $"Channel ID {prompt.ChannelId}, Response: {response.ToString()}",
                    ContentType = "text/html",
                    StatusCode = (int)HttpStatusCode.OK,
                };

        }

Ожидаемое поведение: MSFT Azure долженопределили и нашли зависимость v0.9.0. Не должно быть выброшено никаких исключений, и ответ должен быть HTTP 200.

Зависимости проекта

Сообщение об исключении

...