Шаблоны клиента подготовки PnP
Рассматривайте шаблоны клиента как расширение на основе подготовки PnP или шаблонов сайтов. Вместо того чтобы просто подготавливать артефакты для сайта, теперь вы можете создавать сайты, создавать команды, подготавливать записи Azure AD, подготавливать таксономию и т. д.
Примечание.
Платформа подготовки PnP & подсистема подготовки PnP — это решения с открытым кодом, в которых активное сообщество предоставляет поддержку. SLA для поддержки инструмента с открытым исходным кодом со стороны Майкрософт отсутствует.
Примечание.
Хорошим ресурсом для шаблонов клиентов является репозиторий шаблонов подготовки PnP , который содержит все шаблоны, ранее используемые в службе lookbook (больше не доступны). Вы обнаружите папку клиента, включающую несколько папок, каждая из которых содержит шаблон. Во вложенных папках находится исходная папка. Исходная папка содержит файл template.xml, который является шаблоном клиента.
Последовательность
Последовательность — это драйвер для создания семейств веб-сайтов и необязательных дочерних сайтов. Обратите внимание, что последовательность позволяет создать только так называемый современный сайт: информационный сайт, современный сайт группы с подключенной группой O365 или современный сайт группы без подключенной группы O365.
<pnp:Sequence ID="sequence">
<pnp:SiteCollections>
<pnp:SiteCollection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="pnp:CommunicationSite" ProvisioningId="MAIN" SiteDesign="Topic" Title="My New Site" Description="" Url="/sites/mynewsite" IsHubSite="false" Owner="user@domain.com">
<pnp:Templates>
<pnp:ProvisioningTemplateReference ID="MAIN-TEMPLATE"/>
</pnp:Templates>
</pnp:SiteCollection>
</pnp:SiteCollections>
</pnp:Sequence>
Во фрагменте выше видно, что с помощью шаблона мы создаем информационный сайт.
Важно, чтобы элемент <pnp:SiteCollection>
содержал атрибут xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
, так как он позволяет схеме определить, какие свойства применяются к элементу. Свойства информационного сайта отличаются от свойств экземпляра сайта группы.
Дочерним элементом <pnp:SiteCollection>
является <pnp:Templates>
, позволяющий ссылаться на один или несколько шаблонов. Хотя шаблоны могут храниться в отдельных файлах, рекомендуется хранить их в одном файле.
Когда модуль анализирует шаблон, он сначала создает семейства веб-сайтов, в этом случае сайт с URL-адресом /sites/mynewsite
. После создания сайта он находит шаблон с идентификатором MAIN-TEMPLATE
и применяет его к только что созданному сайту.
Команды
Вы можете легко настроить создание команды:
<pnp:Teams>
<pnp:Team DisplayName="My Test Team" Description="" Visibility="Private" Photo="TeamData/TEAM_ef3020c6-1953-4367-b7c5-a6da8e24d049/photo_ef3020c6-1953-4367-b7c5-a6da8e24d049_432X432.jpg" Specialization="None">
<pnp:FunSettings />
<pnp:GuestSettings AllowCreateUpdateChannels="false" />
<pnp:MembersSettings />
<pnp:MessagingSettings />
<pnp:Security>
<pnp:Owners>
<pnp:User UserPrincipalName="user@domain.com" />
</pnp:Owners>
<pnp:Members>
<pnp:User UserPrincipalName="user@domain.com" />
</pnp:Members>
</pnp:Security>
<pnp:DiscoverySettings ShowInTeamsSearchAndSuggestions="false" />
<pnp:Channels>
<pnp:Channel DisplayName="General" Description="test" ID="19:796d063baf3fad3ffa2231aeaf092c8fb9b44e@thread.skype">
<pnp:Tabs>
<pnp:Tab DisplayName="Lists and Pages" TeamsAppId="2a527703-1f6f-4559-a332-d8a7d288cd88"/>
<pnp:Tab DisplayName="Docs" TeamsAppId="com.microsoft.teamspace.tab.files.sharepoint">
<pnp:Configuration EntityId="" ContentUrl="https://tenant.sharepoint.com/sites/mynewsite/Shared%20Documents" RemoveUrl="" WebsiteUrl="" />
</pnp:Tab>
</pnp:Tabs>
</pnp:Channel>
</pnp:Channels>
</pnp:Team>
</pnp:Teams>
В приведенном выше примере показано создание команды, добавление канала, а также добавление 2 вкладок в канал.
Подготовка шаблона клиента, содержащего команду, с помощью PnP PowerShell
Так как программно создать команду можно только с помощью Microsoft Graph, при использовании PnP PowerShell для подготовки шаблона с элементом "Команда" необходим маркер доступа к Graph. PnP PowerShell может автоматически получить такой маркер доступа для вас, однако сначала необходимо предоставить согласие для вашего клиента.
Выполняется это следующим образом:
Register-PnPManagementShellAccess
Это только однократное действие. После выполнения этого шага можно использовать привычные способы подключения к PnP PowerShell.
Поток, используемый модулем подготовки, выглядит следующим образом:
- Войдите, используя учетные данные
Connect-PnPOnline <tenant>.sharepoint.com -Interactive
. - Шаблон применяется с помощью
Invoke-PnPTenantTemplate -Path yourtemplate.pnp
- Модуль подготовки запустит подготовку всех артефактов SharePoint, найденных в этом шаблоне.
- Когда модуль обнаруживает артефакт, требующий маркер доступа для Microsoft Graph, он снова вызывает PnP PowerShell, чтобы получить такой маркер
- С помощью учетных данных, которые вы использовали на шаге 1, и разрешения, предоставленного ранее, как указано выше, PnP PowerShell постарается получить маркер, используя регистрацию приложения Azure с несколькими клиентами в командной консоли PnP. Когда маркер будет успешно получен, PnP PowerShell вернет этот маркер в модуль подготовки, который будет использовать его для вызова API Microsoft Graph.
Если в дальнейшем вы захотите удалить это согласие, войдите на портал Azure и перейдите в службу Azure Active Directory. В разделе Корпоративные приложения вы найдете запись "PnP Management Shell" с идентификатором клиента 31359c7f-bd7e-475c-86db-fdb8c937548e. Удалите эту запись, чтобы очистить согласие.