Развертывание ссылки

Важно!

Примеры кода в этом разделе основаны на версии 4.6 и более поздних версиях пакета SDK Bot Framework. Если вы ищете документацию по более ранним версиям, см. раздел Расширения сообщений — пакет SDK версии 3 в папке Resources документации.

В этом документе описывается, как добавить раскройку ссылок в манифест приложения с помощью портала разработчика и вручную. При распаковке ссылок приложение может зарегистрироваться для получения действия вызова, когда URL-адреса с определенным доменом вставляются в область создания сообщений. invoke содержит полный URL-адрес, вставленный в область создания сообщения, и вы можете показать карточку с дополнительной информацией или действиями, которую пользователь может развернуть. Это работает аналогично команде поиска, только в качестве условия поиска используется URL-адрес. Теперь можно добавить раскройку ссылок в Microsoft Teams без установки приложения.

Снимок экрана: процесс распаковки ссылок для приложения Teams, установленного или не установленного в Teams и других приложениях.

Примечание.

  • Результат развертывания ссылки кэшируется в течение 30 минут.
  • Распаковка ссылок поддерживает адаптивные карточки версии 1.3 и более ранних версий.
  • Команды расширения обмена сообщениями не требуются для распаковки связи. Однако в манифесте должна быть по крайней мере одна команда, так как она является обязательным свойством в расширениях обмена сообщениями. Дополнительные сведения см. в разделе Создание расширений.
  • Для мобильного клиента распаковка ссылок поддерживается только для ссылок, не требующих проверки подлинности.

На следующем рисунке показан пример распаковки ссылок в классических и мобильных клиентах Teams:

Когда ссылка вставляется в область сообщения Создания Teams, ссылка разворачивается в карта с сведениями о рабочем элементе.

Снимок экрана: пример распаковки ссылок для ссылок Azure Dev Ops, вставленных в область создания сообщений teams.

Дополнительные сведения о раскрое ссылок см. в следующем видео:


Чтобы добавить развертывание ссылок в манифест приложения, добавьте новый массив messageHandlers в раздел composeExtensions манифеста приложения JSON. Массив можно добавить с помощью портала разработчика или вручную. Списки доменов могут содержать подстановочные знаки, например *.example.com , которые соответствуют только одному сегменту домена. Если необходимо сопоставить a.b.example.com, используйте *.*.example.com.

Примечание.

Убедитесь, что вы не добавляете домены, которые не являются вашим контролем, напрямую или с помощью подстановочных знаков. Например, yourapp.onmicrosoft.com является допустимым, но *.onmicrosoft.com недопустимым. Домены верхнего уровня запрещены, например *.com, *.org.

  1. Откройте портал разработчика в клиенте Microsoft Teams и выберите вкладку Приложения .

    Снимок экрана: портал разработчика с приложениями, выделенными красным цветом.

    Примечание.

    Необходимо добавить приложение портала разработчика, если оно не добавлено в клиенте Teams.

    Снимок экрана: Teams с выделенным красным цветом порталом поиска и разработчика.

  2. Загрузите манифест вашего приложения.

    Снимок экрана: портал разработчика с информацией о приложениях.

  3. Выберите Расширение для обмена сообщениями в разделе Функции приложения , а затем выберите Выбрать существующего бота или Создать новый бот.

    Снимок экрана: функции приложения и расширение для обмена сообщениями, выделенные красным цветом.

    Снимок экрана: расширение для обмена сообщениями с выделенным красным цветом выбор существующего бота.

  4. Нажмите кнопку Сохранить.

  5. Выберите Добавить домен в разделе Ссылки предварительного просмотра и введите допустимый домен.

  6. Нажмите Добавить. На изображении ниже даны пояснения по этому процессу.

    Снимок экрана: раздел обработчиков сообщений на портале разработчика.

Примечание.

Если проверка подлинности добавлена через Microsoft Entra ID, разворачивайте ссылки в Teams с помощью бота.

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

...
{
  "composeExtensions": [
    {
      "botId": "abc123456-ab12-ab12-ab12-abcdef123456",
      "messageHandlers": [
        {
          "type": "link",
          "value": {
            "domains": [
              "*.trackeddomain.com"
            ]
          }
        }
      ]
    }
  ]
}
...

Полный пример манифеста см. по ссылке на манифест.

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

Примечание.

Ответ бота должен содержать preview свойство .

Поддерживаемые типы карточек представлены ниже.

Дополнительные сведения см. в статье Вызов типа действия.

Следующий код является примером invoke запроса:

Ниже приводится пример invoke, отправленного вашему боту.

   {
     "type": "invoke",
     "name": "composeExtension/queryLink",
     "value": {
       "url": "https://theurlsubmittedbyyouruser.trackeddomain.com/id/1234"
     }
   }

Пример ответа:

{
 "composeExtension":
   {
     "type": "result",
     "attachmentLayout": "list",
     "attachments": 
     [
       {
         "contentType": "application/vnd.microsoft.card.adaptive",
         "preview": 
          {
            "contentType": "application/vnd.microsoft.card.adaptive",
            "content": << Card Payload >>
          },
          "contentType": "application/vnd.microsoft.card.adaptive",
          "content": << Card Payload >>
       }
      ]
   }
}
      

Самый распространенный способ предоставления общего доступа к содержимому в Microsoft Teams — это ссылки. Для любой ссылки Teams разворачивает предварительный просмотр ссылки в адаптивную карточку с такими сведениями, как изображение, заголовок и описание.

Вы можете отображать расширенные предварительные версии ссылок, не устанавливая приложение в Microsoft Teams. Добавьте метаданные schema.org на веб-сайт в формате JSON-LD и используйте шаблоны микро-возможностей, соответствующие вашему продукту. Teams использует эти шаблоны, чтобы развернуть расширенные предварительные версии ссылок в Microsoft Teams.

Если вы уже добавили schema.org на веб-сайт, вы можете просмотреть расширенный предварительный просмотр ссылки, вставив ее в область создания сообщений Teams.

Снимок экрана: пример полнофункционированного предварительного просмотра при вставке ссылки в область создания сообщений Teams.

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

  1. Добавьте метаданные schema.org в формате JSON-LD на веб-сайт .

  2. На веб-сайте проверка для поддерживаемого @type атрибута и скопируйте метаданные под тегом application/ld+jsonскрипта .

  3. Откройте конструктор адаптивных карточек и создайте новый файл.

  4. В редакторе примеров данных вставьте метаданные JSON с веб-сайта.

    Снимок экрана: пример метаданных веб-сайта в разделе редактора примеров данных Designer адаптивной карточки.

  5. Проверьте шаблон микро-возможностей и добавьте его код в РЕДАКТОР ПОЛЕЗНЫХ ДАННЫХ КАРТОЧКИ.

    На снимках экрана показан пример шаблона микро-возможностей, добавленного в редактор полезных данных карта в адаптивной карточке Designer.

    При необходимости добавьте новые атрибуты из шаблона в метаданные веб-сайта в редакторе примеров данных.

  6. Чтобы предварительный просмотр интерфейса разворачивать адаптивную карточку, выберите Режим предварительного просмотра.

Дополнительные сведения см. в разделе Микро-возможности для ссылок на веб-сайт.

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

На следующем рисунке представлен последовательный поток для включения и использования распаковки канала установки.

Снимок экрана: пользовательский поток для распаковки кода ссылки.

Чтобы подготовить приложение к распаковку ссылки нулевой установки, выполните следующие действия.

  1. Присвойте свойству supportsAnonymizedPayloads значение true в схеме манифеста.

  2. Настройте приложение для обработки нового invoke запроса composeExtensions/anonymousQueryLink.

    Пример нового invoke запроса:

    Снимок экрана: объявление запроса

    Пример полезных invoke данных запроса:

    {
       "name":"composeExtension/anonymousQueryLink",
       "type":"invoke",
       "timestamp":"2021-12-02T08:12:21.148Z",
       "localTimestamp":"2021-12-02T00:12:21.148-08:00",
       "id":"f:43d59e15-6114-bd53-08c3-b232aa648ec1",
       "channelId":"msteams",
       "serviceUrl":"https://smba.trafficmanager.net/amer/",
       "from":{
          "id":"redacted",
          "name":"redacted"
       },
       "conversation":{
          "isGroup":true,
          "conversationType":"groupChat",
          "tenantId":"redacted",
          "id":" redacted",
          "name":" redacted"
       },
       "recipient":{
          "id":"28:85fa138c-7654-4236-86eb-466160687029",
          "name":"test bot"
       },
       "entities":[
          {
             "locale":"en-US",
             "country":"US",
             "platform":"Mac",
             "timezone":"America/Los_Angeles",
             "type":"clientInfo"
          }
       ],
       "channelData":{
          "tenant":{
             "id":" redacted"
          },
          "source":{
             "name":"compose"
          }
       },
       "value":{
          "url":"https://test.test.com/test"
       },
       "locale":"en-US",
       "localTimezone":"America/Los_Angeles"
    }
    
  3. Ответ на полезные composeExtensions/anonymousQueryLink данные.

    1. Для сценариев, не относящихся к проверке подлинности: необходимо отправить ответ как typeresult и карта. Используйте следующий шаблон:

      {
        "composeExtension": {
          "type": "result",
          "attachmentLayout": "list",
          "attachments": [
            {
              "contentType": "application/vnd.microsoft.teams.card.o365connector",
              "content": {
                "sections": [
                  {
                    "activityTitle": "[85069]: Create a cool app",
                    "activityImage": "https://placekitten.com/200/200"
                  },
                  {
                    "title": "Details",
                    "facts": [
                      {
                    "name": "Assigned to:",
                    "value": "[Larry Brown](mailto:larryb@example.com)"
                      },
                      {
                    "name": "State:",
                    "value": "Active"
                      }
                    ]
                  }
                 ]
               }
            }
          ]
        }
      }
      
    2. Для сценариев проверки подлинности: необходимо отправить ответ с typeauth как с необязательным карта предварительной проверки подлинности во вложениях. Используйте следующий шаблон:

      {
         "composeExtension": {
            "type": "auth",
            "attachmentLayout": "list",
            "attachments": [
               {
                 "$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
                 "type": "AdaptiveCard",
                 "version": "1.5",
                 "actions": [],
                 "body": [
                   {
                     "type": "TextBlock",
                     "size": "medium",
                     "weight": "bolder",
                     "text": "Zero-install test app"
                  },
                  {
                     "type": "TextBlock",
                     "text": "Link your account with this app for a full experience",
                     "wrap": true
                  }
                 ]
               }
            ]
         }
      }
      
  4. Предварительная проверка подлинности карта (только для проверки подлинности). Создайте предварительную версию карта, чтобы развернуть ссылки для пользователей, у которых не установлено приложение. Можно создать предварительно шаблонный карта или добавить соответствующие поля заполнителей для обновления пользователями. Пользователи могут узнать о приложении еще до его установки.

    Вы можете создать настраиваемую карта и добавить соответствующие поля. Пользователи могут заполнить необходимые сведения в соответствии с полями. На следующем рисунке показан настраиваемый предварительный просмотр карта:

    Снимок экрана: настроенная карта с полями для обновления пользователем.

    На следующем рисунке показан предварительный просмотр карта по умолчанию:

    Снимок экрана: предварительный просмотр кода по умолчанию для ссылки карта.

    Примечание.

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

  5. Преимущества и ограничения:

    Распаковка канала нулевой установки помогает предоставить пользователям расширенные возможности, например:

    • Разворачивайте предварительные версии для ссылок, которыми пользователи обмениваются в Teams, даже до установки приложения.
    • Создайте карта приветствия для приложения, чтобы отобразить предварительный просмотр с полями заполнителей.

При проверке распаковки ссылки нулевой установки не устанавливайте приложение как личное приложение. Вместо этого отправьте приложение в Teams.

Примечание.

Не запускайте тестовое приложение непосредственно из отладчика Microsoft Visual Studio.

Чтобы протестировать распаковку канала нулевой установки, выполните следующие действия.

  1. Войдите в Центр администрирования Teams.

  2. На панели слева выберите Приложения> TeamsУправление приложениями.

    Снимок экрана: Центр администрирования Teams и раздел для отправки пользовательского приложения в Teams.

  3. Выберите + Отправить новое приложение.

    Снимок экрана: Центр администрирования Teams и место отправки пользовательских приложений

  4. Выберите Добавить.

  5. Выберите Открыть , чтобы отправить ZIP-файл для тестового приложения.

  6. После успешной отправки приложения перейдите в разделПриложения>Teams>,созданные для вашей организации.

    Снимок экрана: клиент Teams с приложением Teams, загруженным организацией

  7. Запрос вызова можно протестировать composeExtensions/anonymousQueryLink , настроив точку останова в методе, который реализует запрос anonymousQueryLink в приложении.

Когда пользователь предоставляет общий доступ к ссылке на собрании, приложение Teams разворачивает ссылку на адаптивную карточку. Результат распаковки ссылки кэшируется в Teams в течение 30 минут. Вы можете обновить приложение, чтобы задать политику кэша и удалить кэш для приложения. Это действие помогает отображать разное содержимое в адаптивной карточке, когда ссылка приложения предоставляется в другом контексте в Teams.

Чтобы удалить кэш распаковки связи, обновите бот, указав в type качестве setcachepolicy в свойстве suggestedActions . Teams не кэшируют результаты для ссылок приложения с помощью "type": "setCachePolicy".

Следующий пример полезных данных JSON для suggestedActions свойства:

"suggestedActions": {
            "actions": [
                {
                    "type": "setCachePolicy",
                    "value": "{\"type\":\"no-cache\"}"
                }
            ]
        },

Пошаговые инструкции

Следуйте пошаговым инструкциям по развертыванию ссылок в Teams с помощью бота.

Пример кода

Название примера Описание .NET Node.js Манифест
Отмена распаковки канала установки. В этом примере показано, как использовать расширение обмена сообщениями на основе Поиск со страницей конфигурации. В этом примере также показано распаковка ссылки нулевой установки. Просмотр Просмотр Просмотр

См. также