У меня есть простой 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.
Зависимости проекта
Сообщение об исключении