Aprovisionamiento de sitios de grupo modernos mediante programación

Los sitios modernos se introdujeron en SharePoint Online durante el otoño de 2016, y la opción de usarlos puede controlarse en el nivel de espacio empresarial. En este artículo se exponen las distintas opciones y consideraciones para aprovisionar sitios modernos en SharePoint Online. Concretamente, el artículo explica cómo crear sitios de comunicación y de grupo modernos.

Importante

La experiencia clásica no queda en desuso, sino que coexistirá con la moderna.

Comparación entre los sitios de grupo modernos y los sitios de comunicación modernos

Antes de profundizar en los detalles sobre cómo aprovisionar sitios modernos, se expondrán los dos principales tipos de sitios que hay disponibles: sitios de grupo y sitios de comunicación.

Por un lado, los sitios de grupo modernos son espacios que un grupo de personas pueden utilizar para colaborar y compartir documentos o mensajes. Cada sitio de grupo moderno dispone de un grupo de Microsoft 365 de respaldo con el fin de mejorar la experiencia de colaboración global. De hecho, gracias al grupo de Microsoft 365, los miembros del grupo pueden aprovechar servicios como Planner, calendarios compartidos, almacenamiento compartido de OneDrive para la Empresa y conectores de Office 365 personalizados. En un sitio de grupo moderno, normalmente los miembros pueden contribuir al contenido (leer y escribir). Además, el grupo de Microsoft 365 de respaldo del sitio de grupo moderno puede ser privado o público. De forma predeterminada, es público.

Por otro lado, los sitios de comunicación modernos son espacios en los que se pueden compartir novedades, presentar artículos o difundir mensajes. La idea principal de un sitio de comunicación consiste en que unos cuantos editores se dediquen a crear y mantener el contenido y, a su vez, un público amplio consuma ese contenido. Sin embargo, un sitio de comunicación no dispone de un grupo de Microsoft 365 de respaldo. Los usuarios pueden acceder al sitio de comunicación de destino mediante el conocido conjunto de permisos de cualquier otro sitio de SharePoint; de forma predeterminada, todos los sitios de comunicación son privados.

Por lo tanto, si tiene que crear un sitio para la colaboración en equipo, la opción adecuada es, con toda probabilidad, un sitio de grupo moderno. Por el contrario, si quiere comunicar algo a un grupo amplio de personas, un sitio de comunicación es la mejor opción.

Aprovisionamiento de sitios de grupo modernos

En esta sección aprenderá cómo aprovisionar un sitio de grupo moderno y de qué opciones dispone para hacerlo.

Aprovisionamiento de un sitio de grupo moderno desde la interfaz de usuario

Hay diferentes rutas para aprovisionar un sitio de grupo "moderno". Puede iniciar el aprovisionamiento directamente desde el sitio de SharePoint Online, o también puede aprovisionar un grupo de Microsoft 365 desde otras ubicaciones (por ejemplo, desde Outlook), que luego también desencadena el aprovisionamiento de un sitio de grupo moderno.

  • Si su administrador ha activado los sitios de grupo modernos en su espacio empresarial, puede crearlos desde la página de inicio de SharePoint.

  • También puede crear un grupo de Microsoft 365 desde Office 365 Outlook y cuando acceda a la pestaña de sitio de ese grupo aterrizará en un sitio de grupo moderno.

Control del flujo de aprovisionamiento predeterminado

Puede controlar el proceso de creación de sitios de SharePoint desde la configuración del administrador de SharePoint Online. Puede elegir si la experiencia moderna está disponible para los usuarios finales o si le gustaría seguir usando la experiencia clásica.

Opciones de creación de sitios desde la UI de administrador de SharePoint Online

Para obtener más información, vea los siguientes artículos de Asistencia de Office:

Aprovisionamiento de un sitio de grupo moderno mediante programación a través de la API de REST de SharePoint Online

Los sitios de grupo modernos pueden crearse mediante programación utilizando una API de REST proporcionada por SharePoint Online y también usada por la interfaz de sitio de creación de SharePoint Online. Para aprovisionar un sitio de grupo moderno mediante REST, realice una solicitud POST al punto de conexión de “grupos” de Microsoft Graph: https://graph.microsoft.com/v1.0/groups

El URI del sitio de grupo “moderno” está determinado por el parámetro mailNickname y la ruta de acceso administrada que haya seleccionado para los sitios de grupo en la administración del inquilino (el valor predeterminado es “sites”).

Lo siguiente creará un grupo de Microsoft 365 y un sitio de grupo moderno asociado con una dirección URL de https://[tenant].sharepoint.com/sites/mymodernteamsite.

POST https://graph.microsoft.com/v1.0/groups
Content-type: application/json
Content-length: 200

{
  "description": "description",
  "displayName": "My modern team site",
  "groupTypes": [
    "Unified"
  ],
  "mailEnabled": true,
  "mailNickname": "mymodernteamsite",
  "securityEnabled": false
}

Aprovisionar un sitio de grupo moderno mediante el uso de un componente principal de PnP CSOM

En el componente PnP Core de SharePoint, desde la versión de octubre de 2017 (v. 2.19.1710.1), hay un nuevo método de extensión para el tipo ClientContext de CSOM. El nombre del método de extensión es CreateSiteAsync y le permite crear un sitio de grupo moderno en cuestión de segundos.

En el fragmento de código siguiente verá cómo usar esta técnica.

// Let's use the CreateSiteAsync extension method of PnP CSOM Core
// to create the "modern" team site

var targetTenantUrl = "https://[tenant].sharepoint.com/";

using (var context = new ClientContext(targetTenantUrl))
{
    context.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[Name-of-Your-Credentials]");

    // Create new "modern" team site at the url
    // https://[tenant].sharepoint.com/sites/mymodernteamsite
    var teamContext = await context.CreateSiteAsync(
        new TeamSiteCollectionCreationInformation
        {
            Alias = "mymodernteamsite", // Mandatory
            DisplayName = "displayName", // Mandatory
            Description = "description", // Optional
            Classification = "classification", // Optional
            IsPublic = true, // Optional, default true
        });
    teamContext.Load(teamContext.Web, w => w.Url);
    teamContext.ExecuteQueryRetry();
    Console.WriteLine(teamContext.Web.Url);
}

Nota:

Para obtener más información sobre el argumento clasificación en clasificación de sitios modernos de SharePoint.

Como puede ver, el método de extensión crea un nuevo sitio de grupo moderno y devuelve un nuevo objeto de ClientContext directamente conectado al sitio creado recientemente.

Aprovisionamiento de un sitio de grupo moderno mediante PnP PowerShell

También puede crear sitios modernos usando PnP PowerShell. El script siguiente crea un sitio de grupo moderno y, después, devuelve la URL del sitio de SharePoint actual para su posterior manipulación. Después de que tenga acceso a la URL del sitio creado, puede usar CSOM (con el componente SharePoint PNP Core) o SharePoint PnP PowerShell para automatizar otras operaciones en el sitio creado.

# Connect to SharePoint Online
# This command will prompt the sign-in UI to authenticate
Connect-PnPOnline "https://[tenant].sharepoint.com/"

# Create the new "modern" team site
$teamSiteUrl = New-PnPSite -Type TeamSite -Title "displayName" -Alias "mymodernteamsite" -Description "description" -IsPublic -Classification "classification" 

# Connect to the modern site using PnP PowerShell SP cmdlets
# Since we are connecting now to SP side, credentials will be asked
Connect-PnPOnline $teamSiteUrl

# Now we have access on the SharePoint site for any operations
$web = Get-PnPWeb -Includes WebTemplate, Configuration
$web.WebTemplate + "#" + $web.Configuration

Nota:

PnP PowerShell es una solución de código abierto con una comunidad activa que ofrece su soporte. No hay ningún contrato de nivel de servicio para el soporte de la herramienta de código abierto de Microsoft.

Aprovisionamiento de un sitio de grupo moderno usando la CLI de Microsoft 365

También puede usar la CLI de Microsoft 365 para crear sitios modernos. La CLI de Microsoft 365 es una interfaz de línea de comandos multiplataforma que se puede usar en cualquier plataforma, incluidas Windows, MacOS y Linux.

Nota:

La CLI de Microsoft 365 es una solución de código abierto con una comunidad activa que ofrece su soporte. No hay ningún contrato de nivel de servicio para el soporte de la herramienta de código abierto de Microsoft.

El script de bash siguiente creará un sitio de grupo moderno y, después, devuelve la URL del sitio de SharePoint actual para su posterior manipulación. Cuando tenga acceso a la URL del sitio creado, podrá usarla para automatizar otras operaciones en el sitio creado.

#!/usr/bin/env bash
# Connect to Microsoft 365 tenant
# This command will prompt a sign-in confirmation message to authenticate
m365 login

# Create the new "modern" team site
siteUrl=$(m365 spo site add --type TeamSite --title 'displayName' --alias 'mymodernteamsite' --description 'description' --isPublic --classification 'classification')

# Display the modern site url
echo $siteUrl

# Since the CLI for Microsoft 365 is connected to Microsoft 365 tenant we can do any operations. 
# As example, we can list all the properties from the site property bag:
m365 spo propertybag list -u $siteUrl

Aprovisionar un grupo de Microsoft 365 mediante programación

Se pueden crear sitios de grupo modernos mediante programación mediante la creación de un grupo de Microsoft 365 con Microsoft Graph. De hecho, al crear un grupo de Microsoft 365, se aprovisiona automáticamente un sitio de grupo moderno para el grupo. El identificador URI del sitio de grupo moderno se basa en el parámetro mailNickname del grupo de Microsoft 365 y tiene la siguiente estructura predeterminada.

https://[tenant].sharepoint.com/sites/[mailNickname]

Nota:

Una descripción detallada de la creación de grupos con Microsoft Graph está disponible en la documentación oficial.

Aprovisionamiento de un grupo de Microsoft 365 mediante el componente principal del CSOM de PnP

El componente principal PnP CSOM disponible como un paquete NuGet, simplificó los métodos para el control de grupo moderno.

/// <summary>
/// Let's use the UnifiedGroupsUtility class from PnP CSOM Core to simplify managed code operations for Microsoft 365 groups
/// </summary>
/// <param name="accessToken">Azure AD Access token with Group.ReadWrite.All permission</param>
public static void ManipulateModernTeamSite(string accessToken)
{
    // Create new modern team site at the url https://[tenant].sharepoint.com/sites/mymodernteamsite
    Stream groupLogoStream = new FileStream("C:\\groupassets\\logo-original.png", 
                                            FileMode.Open, FileAccess.Read);
    var group = UnifiedGroupsUtility.CreateUnifiedGroup("displayName", "description", 
                            "mymodernteamsite", accessToken, groupLogo: groupLogoStream);
            
    // We received a group entity containing information about the group
    string url = group.SiteUrl;
    string groupId = group.GroupId;

    // Get group based on groupID
    var group2 = UnifiedGroupsUtility.GetUnifiedGroup(groupId, accessToken);
    // Get SharePoint site URL from group id
    var siteUrl = UnifiedGroupsUtility.GetUnifiedGroupSiteUrl(groupId, accessToken);

    // Get all groups in the tenant
    List<UnifiedGroupEntity> groups = UnifiedGroupsUtility.ListUnifiedGroups(accessToken);

    // Update description and group logo programatically
    groupLogoStream = new FileStream("C:\\groupassets\\logo-new.png", FileMode.Open, FileAccess.Read);
    UnifiedGroupsUtility.UpdateUnifiedGroup(groupId, accessToken, description: "Updated description", 
                                            groupLogo: groupLogoStream);

    // Delete group programatically
    UnifiedGroupsUtility.DeleteUnifiedGroup(groupId, accessToken);
}

Aprovisionar un grupo de Microsoft 365 con el PowerShell de PnP

También puede crear un grupo de Microsoft 365 con el PowerShell de PnP, lo que le permitirá autenticarse fácilmente con Microsoft Graph usando Azure Active Directory. El script siguiente crea un grupo de Microsoft 365 junto con un sitio de grupo moderno y, después, devuelve la dirección URL del sitio de SharePoint actual para su posterior manipulación. Después de que tenga acceso a la URL del sitio creado, puede usar CSOM (con el componente SharePoint PNP Core) o SharePoint PnP PowerShell para automatizar otras operaciones en el sitio creado.

# Connect to your SharePoint admin center, credentials will be asked
Connect-PnPOnline -Url https://contoso-admin.sharepoint.com

# Create a new modern team site
New-PnPSite -Type Team -Title "Awesome Group" -Description "Awesome Group" -Alias "awesome-group"

Aprovisionamiento de un sitio de grupo moderno con el Shell de administración de SharePoint Online o el PowerShell de PnP

También es posible crear un sitio moderno que no esté conectado a un grupo con PowerShell. Puede usar los cmdlets de PnP PowerShell o el Shell de administración de SharePoint Online.

$title = "Awesome ModernTeamsite"
$url = "https://contoso.sharepoint.com/sites/awesomemodernteamsite"
$owner = "denisd@contoso.com"

// SharePoint Online Management Shell
New-SPOSite -Title $_title -Url $_url -Owner $owner -StorageQuota 512 -Template "STS#3"

// PnP
New-PnPTenantSite -Url $_url -Description $_title -Title $_title -Template STS#3 -Owner $owner

Aprovisionamiento de un grupo de Microsoft 365 usando la CLI de Microsoft 365

También puede usar la CLI de Microsoft 365 para crear un grupo de Microsoft 365.

#!/usr/bin/env bash
# Connect to Microsoft 365 tenant
# This command will prompt a sign-in confirmation message to authenticate
m365 login

# Create a Microsoft 365 group
# The newly created SharePoint site for that group will have the URL
# https://[tenant].sharepoint.com/sites/awesome-group
m365 aad o365group add --displayName 'Awesome Group' --description 'Awesome Group' --mailNickname awesome-group

Aprovisionamiento de sitios de comunicación modernos

En esta sección aprenderá cómo aprovisionar un sitio de comunicación moderno y de qué opciones dispone para hacerlo.

Aprovisionamiento de un sitio de comunicación moderno desde la interfaz de usuario

Para aprovisionar un sitio de comunicación "moderno" mediante la interfaz de usuario (si el administrador ha habilitado sitios de equipo "modernos" en el inquilino), puede empezar directamente desde la página principal de SharePoint Online. Elija el botón Crear sitio, seleccione esta opción para crear un sitio de comunicación, elija un diseño para el sitio, proporcione un nombre y una descripción y el sitio se crea en cuestión de segundos.

En el momento de escribir este artículo los diseños disponibles para un sitio de comunicación son:

  • Tema: use este diseño si tiene que compartir una gran cantidad de información, como noticias, eventos y otros contenidos.
  • Exhibición: use este diseño para presentar un producto, grupo o evento mediante fotos o imágenes.
  • En blanco: empiece con un sitio en blanco y dé vida a sus diseños de forma rápida y sencilla.

Aprovisionamiento de un sitio de comunicación moderno mediante programación

Si lo prefiere, puede crear un sitio de comunicación moderno mediante programación usando CSOM y PnP, o PowerShell.

Aprovisionar un sitio de comunicación moderno mediante el uso de un componente principal de PnP CSOM

El componente principal PnP CSOM disponible como un paquete NuGet, simplificó los métodos para el control de sitios modernos.

// Let's use the CreateSiteAsync extension method of PnP CSOM Core
// to create the "modern" team site

var targetTenantUrl = "https://[tenant].sharepoint.com/";

using (var context = new ClientContext(targetTenantUrl))
{
    context.Credentials = OfficeDevPnP.Core.Utilities.CredentialManager.GetSharePointOnlineCredential("[Name-of-Your-Credentials]");

    // Create new "modern" communication site at the url https://[tenant].sharepoint.com/sites/mymoderncommunicationsite
    var communicationContext = await context.CreateSiteAsync(new CommunicationSiteCollectionCreationInformation {
        Title = "title", // Mandatory
        Description = "description", // Mandatory
        Lcid = 1033, // Mandatory
        AllowFileSharingForGuestUsers = false, // Optional
        Classification = "classification", // Optional
        SiteDesign = CommunicationSiteDesign.Topic, // Mandatory
        Url = "https://[tenant].sharepoint.com/sites/mymoderncommunicationsite", // Mandatory
    });
    communicationContext.Load(communicationContext.Web, w => w.Url);
    communicationContext.ExecuteQueryRetry();
    Console.WriteLine(communicationContext.Web.Url);
}

Como puede ver, el método de extensión crea un nuevo sitio de comunicación moderno y devuelve un nuevo objeto de ClientContext directamente conectado al sitio creado recientemente.

Aprovisionamiento de un sitio de comunicación moderno mediante PnP PowerShell

El script siguiente crea un sitio de comunicación moderno y, después, devuelve la URL del sitio de SharePoint actual para su posterior manipulación, similar al ejemplo previo con sitios de grupo modernos.

# Connect to SharePoint Online
# This command will prompt the sign-in UI to authenticate
Connect-PnPOnline "https://[tenant].sharepoint.com/"

# Create the new "modern" communication site
$communicationSiteUrl = New-PnPSite -Type CommunicationSite -Title "displayName" -Url "https://[tenant].sharepoint.com/sites/mymoderncommunicationsite" -Description "description" -Classification "classification" -SiteDesign Topic

# Connect to the modern site using PnP PowerShell SP cmdlets
# Since we are connecting now to SP side, credentials will be asked
Connect-PnPOnline $communicationSiteUrl

# Now we have access on the SharePoint site for any operations
$context = Get-PnPContext
$web = Get-PnPWeb
$context.Load($web, $web.Title)
Execute-PnPQuery
$web.Title

Aprovisionamiento de un sitio de comunicación moderno usando la CLI de Microsoft 365

También puede usar la CLI de Microsoft 365 para crear sitios de comunicación modernos. El script de bash siguiente creará el sitio, después, devuelve la URL del sitio de SharePoint actual para su posterior manipulación. Cuando tenga acceso a la URL, podrá usarla para automatizar otras operaciones en el sitio creado.

#!/usr/bin/env bash
# Connect to Microsoft 365 tenant
# This command will prompt a sign-in confirmation message to authenticate
m365 login

# Create the new "modern" communication site
siteUrl=$(m365 spo site add --type CommunicationSite --url https://[tenant].sharepoint.com/sites/mymoderncommunicationsite --title displayName --description description --classification classification)

# Display the modern site url
echo $siteUrl

# Since the CLI for Microsoft 365 is connected to your Microsoft 365 tenant we can do any operations. 
# As example, we can list all the properties from the site property bag:
m365 spo propertybag list -u $siteUrl

Consideraciones adicionales

Los subsitios usan plantillas clásicas

Si se aprovisione un subsitio en el sitio raíz de una colección de sitios modernos, los subsitios usarán las plantillas clásicas. Actualmente no hay ninguna plantilla de subsitio moderno disponible. Puede transformar un subsitio clásico en un sitio de grupo moderno mediante la creación de una página moderna en el sitio y la actualización de la página principal a la página que acaba de crear.

Si no desea que los usuarios puedan crear un subsitio clásico en una colección de sitios modernos, como administrador puede ir al centro de administración de SharePoint, seleccione la página de configuración y configurar la opción de Creación de subsitio para ocultar el menú de creación de subsitio. Puede ver la opción Creación de subsitio en la siguiente imagen.

Opciones de creación de subsitios desde la UI de administrador de SharePoint Online

Los sitios no están indicados en la API de espacio empresarial/UI de administrador de SharePoint clásica

Los sitios de grupo modernos no están visibles en la UI de administrador de SharePoint. Puede acceder a la lista de sitios de grupo modernos desde la interfaz de usuario de administración de grupos de Microsoft 365 en el portal de administración de Office 365. Interfaz de usuario de administración de SharePoint Online solo indica sitios clásicos de SharePoint. Esta misma limitación no se aplica al espacio empresarial API: puede usar esta API para enumerar los sitios de grupo modernos con sitios de grupo clásico. Para obtener una lista de sitios de equipo modernos, también puede usar el punto de conexión de grupos de la API de Microsoft Graph.

También hay una próxima interfaz de administración de SharePoint nueva que es compatible con la administración de las nuevas colecciones de sitios modernas junto con las clásicas.

Vea también