Crear equipo

Espacio de nombres: microsoft.graph

Importante

Las API de la versión /beta de Microsoft Graph están sujetas a cambios. No se admite el uso de estas API en aplicaciones de producción. Para determinar si una API está disponible en la versión 1.0, use el selector de Versión.

Cree un equipo.

Nota:

Al crear un equipo, el sitio de SharePoint del canal general podría no aprovisionarse. Si el sitio no se aprovisiona después de 5 minutos, use la API Get filesFolder para desencadenar el aprovisionamiento.

Esta API está disponible en las siguientes implementaciones nacionales de nube.

Servicio global Gobierno de EE. UU. L4 Us Government L5 (DOD) China operada por 21Vianet

Permisos

Se requiere uno de los siguientes permisos para llamar a esta API. Para obtener más información, incluido cómo elegir permisos, vea Permisos.

Tipo de permiso Permisos (de menos a más privilegiados)
Delegado (cuenta profesional o educativa) Team.Create, Group.ReadWrite.All, Directory.ReadWrite.All
Delegado (cuenta personal de Microsoft) No admitida.
Aplicación Team.Create, Teamwork.Migrate.All, Group.ReadWrite.All, Directory.ReadWrite.All

Nota:

El permiso Teamwork.Migrate.All solo se admite para la migración. En el futuro, Microsoft puede solicitarle a usted o a sus clientes que paguen tarifas adicionales en función de la cantidad de datos que se importen.

  • Los permisos Group.ReadWrite.All y Directory.ReadWrite.All solo se admiten por compatibilidad con versiones anteriores. Se recomienda actualizar las soluciones para usar un permiso alternativo enumerado en la tabla anterior y así evitar el uso de estos permisos en el futuro.

Solicitud HTTP

POST /teams

Encabezados de solicitud

Encabezado Valor
Authorization {token} de portador. Obligatorio. Obtenga más información sobre la autenticación y la autorización.
Content-Type application/json. Obligatorio.

Cuerpo de la solicitud

En el cuerpo de la solicitud, agregue una representación JSON del objeto team.

Respuesta

Si se ejecuta de manera correcta, esta API devuelve una respuesta 202 Accepted que contiene un vínculo al elemento teamsAsyncOperation.

Ejemplos

Ejemplo 1: permisos delegados

Este es un ejemplo de una solicitud mínima. Al omitir otras propiedades, el cliente usa de forma implícita los valores predeterminados de la plantilla predefinida representada por template.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
  "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('standard')",
  "displayName": "My Sample Team",
  "description": "My Sample Team’s Description"
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 2: permisos de aplicación

Este es un ejemplo de una solicitud mínima mediante permisos de aplicación. Al omitir otras propiedades, el cliente usa de forma implícita los valores predeterminados de la plantilla predefinida representada por template. Al emitir una solicitud con permisos de aplicación, es necesario especificar un usuario en la colección members.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
   "template@odata.bind":"https://graph.microsoft.com/beta/teamsTemplates('standard')",
   "displayName":"My Sample Team",
   "description":"My Sample Team’s Description",
   "members":[
      {
         "@odata.type":"#microsoft.graph.aadUserConversationMember",
         "roles":[
            "owner"
         ],
         "user@odata.bind":"https://graph.microsoft.com/beta/users('0040b377-61d8-43db-94f5-81374122dc7e')"
      }
   ]
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 3: crear un equipo con varios canales, aplicaciones instaladas y pestañas ancladas mediante permisos delegados

Esta es una solicitud con una carga completa. El cliente puede reemplazar los valores de la plantilla base y agregar los elementos con valores de matriz en la medida en que lo permitan las reglas de validación de specialization.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
    "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('standard')",
    "visibility": "Private",
    "displayName": "Sample Engineering Team",
    "description": "This is a sample engineering team, used to showcase the range of properties supported by this API",
    "channels": [
        {
            "displayName": "Announcements 📢",
            "isFavoriteByDefault": true,
            "description": "This is a sample announcements channel that is favorited by default. Use this channel to make important team, product, and service announcements."
        },
        {
            "displayName": "Training 🏋️",
            "isFavoriteByDefault": true,
            "description": "This is a sample training channel, that is favorited by default, and contains an example of pinned website and YouTube tabs.",
            "tabs": [
                {
                    "teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.web')",
                    "displayName": "A Pinned Website",
                    "configuration": {
                        "contentUrl": "https://learn.microsoft.com/microsoftteams/microsoft-teams"
                    }
                },
                {
                    "teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.youtube')",
                    "displayName": "A Pinned YouTube Video",
                    "configuration": {
                        "contentUrl": "https://tabs.teams.microsoft.com/Youtube/Home/YoutubeTab?videoId=X8krAMdGvCQ",
                        "websiteUrl": "https://www.youtube.com/watch?v=X8krAMdGvCQ"
                    }
                }
            ]
        },
        {
            "displayName": "Planning 📅 ",
            "description": "This is a sample of a channel that is not favorited by default, these channels will appear in the more channels overflow menu.",
            "isFavoriteByDefault": false
        },
        {
            "displayName": "Issues and Feedback 🐞",
            "description": "This is a sample of a channel that is not favorited by default, these channels will appear in the more channels overflow menu."
        }
    ],
    "memberSettings": {
        "allowCreateUpdateChannels": true,
        "allowDeleteChannels": true,
        "allowAddRemoveApps": true,
        "allowCreateUpdateRemoveTabs": true,
        "allowCreateUpdateRemoveConnectors": true
    },
    "guestSettings": {
        "allowCreateUpdateChannels": false,
        "allowDeleteChannels": false
    },
    "funSettings": {
        "allowGiphy": true,
        "giphyContentRating": "Moderate",
        "allowStickersAndMemes": true,
        "allowCustomMemes": true
    },
    "messagingSettings": {
        "allowUserEditMessages": true,
        "allowUserDeleteMessages": true,
        "allowOwnerDeleteMessages": true,
        "allowTeamMentions": true,
        "allowChannelMentions": true
    },
    "discoverySettings": {
        "showInTeamsSearchAndSuggestions": true
    },
    "installedApps": [
        {
            "teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.vsts')"
        },
        {
            "teamsApp@odata.bind": "https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('1542629c-01b3-4a6d-8f76-1938b779e48d')"
        }
    ]
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('958e8cf8-169a-42aa-8599-5c1c5479c0ca')/operations('00000000-0000-0000-0000-000000000000')
Content-Location: /teams('958e8cf8-169a-42aa-8599-5c1c5479c0ca')
Content-Length: 0

Ejemplo 4: crear un equipo a partir de un grupo

El siguiente ejemplo muestra cómo puede crear un equipo nuevo a partir de un grupo, teniendo un Id. de grupo.

Algunas cosas a tener en cuenta sobre esta llamada:

  • Para crear un equipo, el grupo en el que lo está creando tiene que tener como mínimo un propietario.
  • El equipo resultante siempre heredará del nombre de pantalla, la visibilidad, la especialización y los miembros del grupo. Por lo tanto, al realizar esta llamada con la group@odata.bind propiedad , la inclusión de displayName, visibilidad, especialización o members@odata.bind propiedades del equipo devuelve un error.
  • Si hace menos de 15 minutos desde que se creó el grupo, es posible que la llamada de Crear equipo falle con un código de error 404 debido a los retrasos en la replicación. Se recomienda que vuelva a intentar la llamada para Crear equipo tres veces, con un retraso de 10 segundos entre llamadas.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
  "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('standard')",
  "group@odata.bind": "https://graph.microsoft.com/beta/groups('71392b2f-1765-406e-86af-5907d9bdb2ab')"
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('71392b2f-1765-406e-86af-5907d9bdb2ab')/operations('9698b2b8-9636-4f49-b7a8-10dadfa7062a')
Content-Location: /teams('71392b2f-1765-406e-86af-5907d9bdb2ab')
Content-Length: 0

Ejemplo 5: crear un equipo desde un grupo con varios canales, aplicaciones instaladas y pestañas ancladas

A continuación se muestra una solicitud que convierte un grupo existente con propiedades extendidas que crean el equipo con varios canales, aplicaciones instaladas y pestañas ancladas.

Para obtener más información sobre los tipos de plantilla base y las propiedades admitidas, vea Introducción a las plantillas de Teams.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
   "template@odata.bind":"https://graph.microsoft.com/beta/teamsTemplates('standard')",
   "group@odata.bind":"https://graph.microsoft.com/beta/groups('dbd8de4f-5d47-48da-87f1-594bed003375')",
   "channels":[
      {
         "displayName":"Class Announcements 📢",
         "isFavoriteByDefault":true
      },
      {
         "displayName":"Homework 🏋️",
         "isFavoriteByDefault":true
      }
   ],
   "memberSettings":{
      "allowCreateUpdateChannels":false,
      "allowDeleteChannels":false,
      "allowAddRemoveApps":false,
      "allowCreateUpdateRemoveTabs":false,
      "allowCreateUpdateRemoveConnectors":false
   },
   "installedApps":[
      {
         "teamsApp@odata.bind":"https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.vsts')"
      },
      {
         "teamsApp@odata.bind":"https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('1542629c-01b3-4a6d-8f76-1938b779e48d')"
      }
   ]
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 6: crear un equipo con un tipo de plantilla base no estándar

Los tipos de plantilla base son plantillas especiales que Microsoft creó para sectores específicos. Estas plantillas base suelen contener aplicaciones propietarias que no están disponibles en las propiedades de la tienda y del equipo que aún no se admiten individualmente en las plantillas de Microsoft Teams.

Para crear un equipo a partir de una plantilla base no estándar, quiere cambiar la template@odata.bind propiedad del cuerpo de la solicitud de standard a la plantilla base específica que desea crear.

Para obtener más información sobre los tipos de plantilla base admitidos, vea Introducción a las plantillas de Teams.

Nota:

Los usuarios de Teams pueden tardar hasta 24 horas en ver un cambio de plantilla personalizado en la galería.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
  "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('educationClass')",
  "displayName": "My Class Team",
  "description": "My Class Team’s Description"
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 7: Creación de un equipo con un tipo de plantilla base no estándar localizado

Los tipos de plantilla base se pueden localizar según la elección de idioma que prefiera, lo que le permite crear plantillas en el idioma que prefiera.

Elija la plantilla de equipo de la lista de definiciones devuelta por la operación Definiciones de lista .

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{

    "templateDefinition@odata.bind": "https://graph.microsoft.com/beta/teamwork/teamTemplates/com.microsoft.teams.template.ManageAProject/definitions/Y29tLm1pY3Jvc29mdC50ZWFtcy50ZW1wbGF0ZS5NYW5hZ2VBUHJvamVjdCMjUHVibGljIyNhci1TQQ==",

    "displayName": "My Sample Team",

    "description": "My Sample Team’s Description"

}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 8: Creación de un equipo con un tipo de plantilla base no estándar con propiedades extendidas

Los tipos de plantilla base se pueden extender con propiedades adicionales, lo que le permite usar una plantilla base existente con otras opciones de equipo, canales, aplicaciones o pestañas.

Para obtener más información sobre los tipos de plantilla base y las propiedades admitidas, vea Introducción a las plantillas de Teams.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
   "template@odata.bind":"https://graph.microsoft.com/beta/teamsTemplates('educationClass')",
   "displayName":"My Class Team",
   "description":"My Class Team’s Description",
   "channels":[
      {
         "displayName":"Class Announcements 📢",
         "isFavoriteByDefault":true
      },
      {
         "displayName":"Homework 🏋️",
         "isFavoriteByDefault":true
      }
   ],
   "memberSettings":{
      "allowCreateUpdateChannels":false,
      "allowDeleteChannels":false,
      "allowAddRemoveApps":false,
      "allowCreateUpdateRemoveTabs":false,
      "allowCreateUpdateRemoveConnectors":false
   },
   "installedApps":[
      {
         "teamsApp@odata.bind":"https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('com.microsoft.teamspace.tab.vsts')"
      },
      {
         "teamsApp@odata.bind":"https://graph.microsoft.com/v1.0/appCatalogs/teamsApps('1542629c-01b3-4a6d-8f76-1938b779e48d')"
      }
   ]
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0

Ejemplo 9: Creación de un equipo en modo de migración

Solicitud

En el siguiente ejemplo se muestra cómo crear un equipo para mensajes importados.

Nota: En el futuro, Microsoft puede solicitarle a usted o a sus clientes que paguen tarifas adicionales en función de la cantidad de datos que se importen.|

Nota: Teams creado en modo de migración solo admite la standard plantilla.

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
  "@microsoft.graph.teamCreationMode": "migration",
  "template@odata.bind": "https://graph.microsoft.com/beta/teamsTemplates('standard')",
  "displayName": "My Sample Team",
  "description": "My Sample Team’s Description",
  "createdDateTime": "2020-03-14T11:22:17.067Z"
}

Respuesta

HTTP/1.1 202 Accepted
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')

Respuesta de error

Si la solicitud no se ejecuta correctamente, este método devuelve un código de respuesta 400 Bad Request.

400 Bad Request

A continuación, se presentan motivos habituales por los que se genera esta respuesta:

  • createdDateTime está establecido en una fecha futura.
  • createdDateTime está especificada correctamente, pero no se encuentra el atributo de instancia teamCreationMode o se ha establecido en un valor que no es válido.

Ejemplo 10: Permisos de aplicación con el nombre principal de usuario

Este es un ejemplo de una solicitud mínima mediante permisos de aplicación. Al omitir otras propiedades, el cliente usa de forma implícita los valores predeterminados de la plantilla predefinida representada por template. Al emitir una solicitud con permisos de aplicación, es necesario especificar un usuario en la colección members.

Solicitud

POST https://graph.microsoft.com/beta/teams
Content-Type: application/json

{
   "template@odata.bind":"https://graph.microsoft.com/beta/teamsTemplates('standard')",
   "displayName":"My Sample Team",
   "description":"My Sample Team’s Description",
   "members":[
      {
         "@odata.type":"#microsoft.graph.aadUserConversationMember",
         "roles":[
            "owner"
         ],
         "user@odata.bind":"https://graph.microsoft.com/beta/users('jacob@contoso.com')"
      }
   ]
}

Respuesta

HTTP/1.1 202 Accepted
Content-Type: application/json
Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')/operations('3a6fdce1-c261-48bc-89de-1cfef658c0d5')
Content-Location: /teams('dbd8de4f-5d47-48da-87f1-594bed003375')
Content-Length: 0