Варианты развертывания решений SharePoint Framework для Microsoft Teams

У разработчиков есть несколько вариантов развертывания решений SharePoint Framework (SPFx) для использования в Microsoft Teams. В этой статье объясняется, какие параметры поддерживаются в SharePoint Online.

Примечание.

До января 2021 г. SharePoint Online поддерживал только один вариант: после отправки решения SPFx в каталог приложений клиента SharePoint требовалось нажать кнопку Синхронизировать с Teams в ленте каталога приложений клиента.

SharePoint Online поддерживает два варианта развертывания решений SPFx в магазине приложений Microsoft Teams:

  1. Автоматическое создание манифеста и пакета приложения Microsoft Teams
  2. Использование предоставленного разработчиком пакета манифеста & приложения Microsoft Teams

Автоматическое создание манифеста и пакета приложения Microsoft Teams

Эта возможность идеально подходит для простой реализации с автоматическим добавлением в Microsoft Teams.

Если решение содержит компоненты для Microsoft Teams, то в этом сценарии при отправке решения SPFx в каталог приложений клиента SharePoint Online кнопка Синхронизировать с Teams активна.

Синхронизировать с Teams

Эта кнопка запустит следующий процесс в SharePoint Online:

  1. SharePoint динамически создаст файл манифеста приложения Microsoft Teams
  2. SharePoint динамически создаст пакет приложения Microsoft Teams
  3. SharePoint развернет созданный пакет приложения Microsoft Teams в магазине приложений Microsoft Teams клиента

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

Примечание.

Чтобы узнать больше о манифесте приложения, перейдите по следующей ссылке в документации по Microsoft Teams: Схема манифеста для Microsoft Teams.

manifest.json property Свойство в SPFx-компоненте манифеста
packageName alias
id id
name.short preconfiguredEntries[0].title
description.short preconfiguredEntries[0].description
description.long preconfiguredEntries[0].description

Примечание.

Манифест компонента извлекается из манифеста компонента (./src/webparts/.. /*.manifest.json).

Если решение SPFx содержит несколько веб-частей, предназначенных для использования в Microsoft Teams, SharePoint Online повторит указанный выше процесс для каждой из них.

Примечание.

Если вам интересна созданная структура пакета, вы можете использовать следующий API REST для загрузки пакета для определенных решений:

_api/web/tenantappcatalog/downloadteamssolution(id)/$value

ИД — это числовой идентификатор решения в библиотеке каталога приложений.

Этот API можно запросить в контексте каталога приложений, например с URL-адресом https://[yourtenant]].sharepoint.com/sites/appcatalog/_api/web/tenantappcatalog/downloadteamssolution(12)/$value. Вызов API запустит процесс загрузки сгенерированного пакета манифестов.

Предоставленный разработчиком пакет манифеста & приложения Microsoft Teams

Если вам нужен более полный контроль над манифестом или пакетом приложения Microsoft Teams, вы можете создать собственный пакет. В этом случае, когда администратор нажимает кнопку Синхронизировать с Teams , SharePoint Online будет искать следующий файл в файле *.sppkg : ./teams/TeamsSPFxApp.zip.

Если этот файл присутствует, вместо динамического создания SharePoint Online развернет его в магазине приложений Microsoft Teams клиента. Этот параметр предоставляет разработчикам полный контроль над пакетом приложения манифеста & приложения Microsoft Teams.

Этот вариант идеально подходит для следующих сценариев:

  • Разработчики хотят иметь полный контроль над содержимым манифеста приложения Microsoft Teams
  • Сложные сценарии Microsoft Teams, такие как определение конкретных ботов, приложения для собраний и т. д.
  • Укажите идентификатор и описание имени & приложения Microsoft Teams, если решение SPFx содержит несколько компонентов. Например, если решение SPFx содержит несколько веб-частей, которые можно использовать в качестве вкладок в Microsoft Teams, автоматическое создание манифеста выберет один из двух компонентов для использования в качестве идентификатора приложения Microsoft Teams и описания имени & .

Чтобы использовать собственный пакет приложения манифеста & приложения Microsoft Teams вместо того, чтобы позволить SharePoint Online динамически создавать его, сделайте следующее:

  1. Создайте манифест приложения Microsoft Teams согласно документации Microsoft Teams:

    Важно!

    в манифесте приложения Teams следует проверить наличие следующей записи:

    "webApplicationInfo": {
    "resource": "https://{teamSiteDomain}",
    "id": "00000003-0000-0ff1-ce00-000000000000"
    }
    

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

  2. Создайте пакет приложения Microsoft Teams с именем TeamsSPFxApp.zip путем сжатия содержимого папки ./teams.

    Важно!

    Не сжимайте папку — вместо этого сожмите ее содержимое. Если запаковать папку в ZIP-архив, она будет вложенной папкой верхнего уровня в конечном ZIP-файле. Такой формат не является допустимым пакетом приложения в Microsoft Teams.

  3. Сохраните файл TeamsSPFxApp.zip в папке ./teams решения SPFx.

  4. Создайте пакет SPFx так же, как и для обычного решения SPFx, используя gulp package-solution. Он будет включать пользовательский пакет приложения Microsoft Teams в *.sppkg.

Создайте динамическую ссылку на URL-адреса сайта SharePoint.

Манифест приложения Microsoft Teams должен указывать на развернутое расположение размещения компонентов SPFx. Однако эти URL-адреса неизвестны во время создания манифеста или пакета приложения Microsoft Teams.

Поэтому при указании пакета приложения в этом варианте развертывания следует использовать следующие строки, которые будут заменены Microsoft Teams в среде выполнения:

  • {teamSiteDomain}: URL-адрес клиента SharePoint Online, где развернуто и установлено решение SPFx
  • {teamSitePath}: путь к сайту SharePoint, где установлены компоненты SPFx
  • {locale}: текущий языковой стандарт клиента Microsoft Teams

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

Важно!

В дальнейших примерах предполагается, что компонент SPFx имеет следующий ИД: {{SPFX_COMPONENT_ID}}. Обязательно замените это значение на ИД компонента для веб-части. Это значение не устанавливается динамически в SharePoint или Microsoft Teams: за это значение отвечает разработчик.

Компонент Microsoft Teams Свойство манифеста приложения в Microsoft Teams Свойство манифеста приложения в Microsoft Teams
Личная вкладка staticTabs[..].contentUrl https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/_layouts/15/teamshostedapp.aspx%3Fteams%26personal%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}
Вкладка чата канала или группы configurableTabs[..].configurationUrl https://{teamSiteDomain}{teamSitePath}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest={teamSitePath}/_layouts/15/teamshostedapp.aspx%3FopenPropertyPane=true%26teams%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}
Расширение для обмена сообщениями composeExtensions.commands[..].taskInfo.url https://{teamSiteDomain}/_layouts/15/TeamsLogon.aspx?SPFX=true&dest=/_layouts/15/teamstaskhostedapp.aspx%3Fteams%26personal%26componentId={{SPFX_COMPONENT_ID}}%26forceLocale={locale}