Упомянутый пользователь в Microsoft Teams получает исключение «BadRequest», на канале команд MS Service Bot выдается ошибка «Упоминаемый объект не соответствует тексту» - PullRequest
1 голос
/ 23 октября 2019

Я скачал пример кода с Упомяну пример ;

var mention = new Mention 
{ 
    Mentioned = turnContext.Activity.From, Text = $"<at>{turnContext.Activity.From.Name}</at>" 
};
var replyActivity = MessageFactory.Text($"Hello {mention.Text}.");
replyActivity.Entities = new List<Entity> { mention };
await turnContext.SendActivityAsync(replyActivity, cancellationToken);

Я протестировал код с помощью эмулятора Bot Framework. Упомянутая пользовательская функция работает нормально, и я вижу, что 'Hello <at>User</at>' возвращается как ответ бота в эмуляторе

При тестировании кода с помощью Microsoft Teams упомянутая пользовательская функция не работает. 'BadRequest' В классе AdapterWithErrorHandler выдано сообщение об ошибке.

На портале Azure (столбец Служба бот-> Каналы-> Команды Microsoft-> ​​Предупреждения в работоспособности) отображается сообщение: Упомянутый объект не соответствует тексту.

Ожидаемый результат должен быть следующим: пользователь, который общается с ботом, будет упомянут в ответном сообщении бота. Кто-нибудь знает, почему он работает в эмуляторе, но не работает в MS-командах? Я пробовал использовать несколько разных версий пакетов Microsoft.Bot.Builder (> = v4.3.3), все версии имеют одинаковую проблему.

Обновлено: я исправил эту проблему самостоятельно и закрыл ее. имя моей учетной записи в команде содержит специальный символ ' & ', из-за которого функция упоминания всегда не выполнялась. добавлена ​​логика для обработки специальных символов в имени учетной записи канала. Исправлена ​​ошибка Упомянутый объект не соответствует тексту

.

1 Ответ

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

@ Gan Jun Пожалуйста, посмотрите на пример для упоминания пользователя в командах Microsoft.

...