MS Teams MessageCard обрезает длинные текстовые сообщения вместо переноса

avatar
Tyler Dahle
1 июля 2021 в 17:31
305
1
0

Я настраиваю веб-перехватчик JSON для своих команд MS следующим образом:

String jsonMessage = JsonConvert.SerializeObject
                (
                    new
                    {
                        @type = "MessageCard",
                        themeColor = "d70000",
                        summary = "Error",
                        sections = new[] {
                            new {
                                activityTitle = "Error",
                                facts = new object[] {
                                    new {
                                        name = "Method",
                                        value = "DeploymentQueueCheck"
                                    }, new {
                                        name = "Deployment Id",
                                        value = dict["deploymentId"]
                                    }, new {
                                        name = "Error Message",
                                        value = result
                                    }
                                }.ToList(),
                                markdown = true
                            }
                        }.ToList(),
                    }
                );

Проблема здесь заключается в том, что полученное сообщение об ошибке может быть очень большим, а карточка, созданная в Teams, не оборачивает текст, а просто позволяет ему отставать от карточки, поэтому хороший фрагмент просто не виден, и вы не можете прокрутите или посмотрите его любым способом...

Мне не повезло найти какие-либо ресурсы по тексту, обрезанному в карточках команд MS... Есть ли способ сделать карточку прокручиваемой? Или сделать его действительно обернутым?

Изображение: enter image description here

На изображении выше показана граница. Это из-за попытки выгрузить JSON для целей отладки. В этом случае нам пришлось бы выполнять replace(',', ' ,') для каждого сообщения, которое мы пытаемся отправить. Но другая проблема заключается в том, что длинный путь к файлу тоже делает это, например C:\Users\folder\folder\folder\folder\folder\folder, в котором нет запятой для разделения, поэтому он не будет переноситься.

Источник
Wajeed-MSFT
1 июля 2021 в 19:39
0

Я попытался воспроизвести ваш сценарий, отправив фиктивную загрузку с большим количеством текста на входящий веб-перехватчик, но я не заметил никаких проблем с усечением. Текст переносится правильно, и я вижу кнопку «Подробнее» на карточке. Вот скриншот: i.stack.imgur.com/rBiUi.png Не могли бы вы поделиться скриншотом и фиктивной загрузкой для воспроизведения?

Tyler Dahle
1 июля 2021 в 20:51
0

Хм, так что я думаю, моя проблема в том, что ошибка в формате JSON без пробелов между запятыми. Поэтому мне, вероятно, придется заменить строку ошибки, чтобы добавить пробелы, чтобы заставить работать перенос.

Wajeed-MSFT
6 июля 2021 в 16:09
0

Удалось решить вашу проблему?

Tyler Dahle
7 июля 2021 в 16:53
0

Не совсем, было бы неплохо получить какой-нибудь свиток. Интервал не решает проблему полностью, потому что имя пути может появиться в сообщении об ошибке, которое может быть длинным, и оно все равно будет обрезано, потому что там не будет пробела. Но сомнительно, что полосу прокрутки можно реализовать.

Wajeed-MSFT
8 июля 2021 в 06:14
0

Не могли бы вы добавить скриншот проблемы?

Tyler Dahle
8 июля 2021 в 15:26
0

Я добавил скриншот того, что вижу, к своему вопросу @Wajeed-MSFT.

Ответы (1)

avatar
Hunaid Hanfee-MSFT
6 августа 2021 в 07:42
0

Да, проблема с пробелами, и я не нашел никаких свойств для переноса текста в факты.

Поэтому я попытался отправить адаптивную карту, и это сработало для меня. Это немного сложно, но работает совершенно нормально. Я выбираю адаптивную карточку, потому что TextBlock имеет свойство переносить текст. Вот тело JSON.

{
  "type": "message",
  "summary": "Error",
  "attachments": [
    {
      "contentType": "application/vnd.microsoft.card.adaptive",
      "content": {
        "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
        "type": "AdaptiveCard",
        "version": "1.2",
        "msteams": {
          "width": "Full"
        },
        "body": [
          {
            "type": "ColumnSet",
            "columns": [
              {
                "type": "Column",
                "width": "auto",
                "items": [
                  {
                    "type": "TextBlock",
                    "text": "Method",
                    "weight": "bolder"
                  },
                  {
                    "type": "TextBlock",
                    "text": "Deployment Id",
                    "weight": "bolder"
                  },
                  {
                    "type": "TextBlock",
                    "text": "Error Message",
                    "weight": "bolder"
                  }
                ]
              },
              {
                "type": "Column",
                "items": [
                  {
                    "type": "TextBlock",
                    "text": "DeploymentQueueCheck"
                  },
                  {
                    "type": "TextBlock",
                    "text": "SomeText"
                  },
                  {
                    "type": "TextBlock",
                    "text": "ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.ErrorMessageWithNoSpaces.",
                    "wrap": "true"
                  }
                ]
              }
            ]
          }
        ]
      }
    }
  ]
}

Вывод: enter image description here