Créer équipeCreate team

Espace de noms: microsoft.graphNamespace: microsoft.graph

Important

Les API sous /beta la version dans Microsoft Graph sont sujettes à modification.APIs under the /beta version in Microsoft Graph are subject to change. L’utilisation de ces API dans des applications de production n’est pas prise en charge.Use of these APIs in production applications is not supported. Pour déterminer si une API est disponible dans la version 1.0, utilisez le sélecteur de version.To determine whether an API is available in v1.0, use the Version selector.

Créer une nouvelle équipe.Create a new team.

AutorisationsPermissions

L’une des autorisations suivantes est nécessaire pour appeler cette API. Pour plus d’informations, notamment sur la façon de choisir les autorisations, voir Autorisations.One of the following permissions is required to call this API. To learn more, including how to choose permissions, see Permissions.

Type d’autorisationPermission type Autorisations (de celle qui offre le plus de privilèges à celle qui en offre le moins)Permissions (from least to most privileged)
Déléguée (compte professionnel ou scolaire)Delegated (work or school account) Team.Create, Group.ReadWrite.All, Directory.ReadWrite.AllTeam.Create, Group.ReadWrite.All, Directory.ReadWrite.All
Déléguée (compte Microsoft personnel)Delegated (personal Microsoft account) Non prise en charge.Not supported.
ApplicationApplication Team.Create, Teamwork.Migrate.All, Group.ReadWrite.All, Directory.ReadWrite.AllTeam.Create, Teamwork.Migrate.All, Group.ReadWrite.All, Directory.ReadWrite.All

Remarque: l’autorisation Teamwork.Migrate.All est uniquement prise en charge pour la Migration.Note: The Teamwork.Migrate.All permission is only supported for migration. À l’avenir, Microsoft pourra exiger que vous ou vos clients payiez des frais supplémentaires en fonction du volume de données importées.In the future, Microsoft may require you or your customers to pay additional fees based on the amount of data imported.

Requête HTTPHTTP request

POST /teams

En-têtes de demandeRequest headers

En-têteHeader ValeurValue
AutorisationAuthorization Porteur {token}. Obligatoire.Bearer {token}. Required.
Content-TypeContent-Type application/json. Obligatoire.application/json. Required.

Corps de la demandeRequest body

Dans le corps de la demande, fournissez une représentation JSON de l’objet équipe.In the request body, supply a JSON representation of a team object.

RéponseResponse

Si elle réussite, cette API renvoie une202 Accepted réponse contenant un lien vers le teamsAsyncOperation.If successful, this API returns a 202 Accepted response containing a link to the teamsAsyncOperation.

ExemplesExamples

Exemple 1 : autorisations déléguéesExample 1: Delegated permissions

Voici un exemple de demande minimale.The following is an example of a minimal request. En omettant d’autres propriétés, le client prend implicitement des valeurs par défaut à partir du modèle prédéfini représenté par template.By omitting other properties, the client is implicitly taking defaults from the pre-defined template represented by template.

DemandeRequest

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"
}
RéponseResponse
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

Exemple 2 : autorisations d’applicationExample 2: Application permissions

Voici un exemple d’une demande minimale à l’aide des autorisations d’application.The following is an example of a minimal request using application permissions. En omettant d’autres propriétés, le client prend implicitement des valeurs par défaut à partir du modèle prédéfini représenté par template.By omitting other properties, the client is implicitly taking defaults from the predefined template represented by template. Lors de l’émission d’une demande avec des autorisations d’application, unutilisateur doit être spécifié dans la collection members.When issuing a request with application permissions, a user must be specified in the members collection.

DemandeRequest

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')"
      }
   ]
}

RéponseResponse

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

Exemple 3 : Créer une équipe avec plusieurs canaux, des applications installées, et les onglets épinglés à l’aide des autorisations déléguéesExample 3: Create a team with multiple channels, installed apps, and pinned tabs using delegated permissions

Les informations suivantes constituent une demande avec une charge utile complète.The following is a request with a full payload. Le client peut substituer des valeurs dans le modèle de base et les ajouter aux éléments évalués dans un tableau dans la limite autorisée par les règles de validation pour la specialization.The client can override values in the base template and add to array-valued items to the extent allowed by validation rules for the specialization.

DemandeRequest

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://docs.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')"
        }
    ]
}

RéponseResponse

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

Exemple 4: créer une équipe à partir d’un groupeExample 4: Create a team from group

L’exemple suivant montre comment vous pouvez créer une équipe à partir d'un groupe, à partir d’un GroupID.The following example shows how you can create a new team from a group, given a groupId.

Voici quelques remarques à retenir sur cet appel :A few things to note about this call:

  • Pour créer une équipe, le groupe que vous créez doit compter au moins un propriétaire.In order to create a team, the group you're creating it from must have a least one owner.
  • L’équipe créée hérite toujours du nom complet, de la visibilité, de la spécialisation et des membres du groupe.The team that's created will always inherit from the group's display name, visibility, specialization, and members. Par conséquent, lorsque vous effectuez cet appel avec la propriété Group@odata.bind, l’inclusion de l'équipe DisplayName, visibilité, spécialisation ou les propriétés members@odata.bind renvoient une erreur. Therefore, when making this call with the group@odata.bind property, the inclusion of team displayName, visibility, specialization, or members@odata.bind properties will return an error.
  • Si le groupe a été créé il y a moins de 15 minutes, l’appel de l’API Créer une équipe peut échouer et renvoyer un code d’erreur 404 en raison des délais de réplication.If the group was created less than 15 minutes ago, it's possible for the Create team call to fail with a 404 error code due to replication delays. Nous vous recommandons de réessayer l’appel Créer une équipe trois fois en laissant 10 secondes entre chaque appel.We recommend that you retry the Create team call three times, with a 10 second delay between calls.

DemandeRequest

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')"
}

RéponseResponse

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

Exemple 5 : Créer une équipe depuis un groupe avec plusieurs canaux, des applications installées, et les onglets épinglésExample 5: Create a team from a group with multiple channels, installed apps, and pinned tabs

Voici une demande qui convertit un groupe existant avec des propriétés étendues, ce qui créé l’équipe avec plusieurs canaux, les applications installées et les onglets épinglés.The following is a request that converts an existing group with extended properties which will create the team with multiple channels, installed apps, and pinned tabs.

Pour en savoir plus sur les propriétés et les types de modèles de base pris en charge, reportez-vous à la rubrique sur la prise en main des modèles Teams.To learn more about supported base template types and supported properties, see Get started with Teams templates.

DemandeRequest

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')"
      }
   ]
}

RéponseResponse

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

Exemple 6 : Créer une équipe avec un type de modèle de base non standardExample 6: Create a team with a non-standard base template type

Les types de modèles de base sont des modèles spéciaux créés par Microsoft pour des secteurs d’activité spécifiques.Base template types are special templates that Microsoft created for specific industries. Ces modèles de base comprennent souvent des applications privées non disponibles dans les propriétés d’équipe et de magasin qui ne sont pas encore pris en charge individuellement dans les modèles Microsoft Teams.These base templates often contain proprietary apps that aren't available in the store and team properties that are not yet supported individually in Microsoft Teams templates.

Pour créer une équipe à partir d’un modèle de base non standard, vous pouvez modifier la propriété template@odata.bind dans le corps de la demande à partir de standard afin qu’elle pointe vers le modèle de base spécifique que vous souhaitez créer.To create a team from a non-standard base template, you’ll want to change the template@odata.bind property in the request body from standard to point to the specific base template you’d like to create.

Pour en savoir plus sur les types de modèles de base pris en charge, reportez-vous à la rubrique sur la prise en main des modèles Teams.To learn more about supported base template types, see Get started with Teams templates.

DemandeRequest

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"
}

RéponseResponse

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

Exemple 7 : Créer une équipe avec un type de modèle de base non standard avec des propriétés étenduesExample 7: Create a team with a non-standard base template type with extended properties

Les types de modèles de base peuvent être étendus avec des propriétés supplémentaires afin que vous puissiez utiliser un modèle de base existant avec des paramètres d’équipe, des canaux, des applications ou des onglets supplémentaires.Base template types can be extended with additional properties, enabling you to build on an existing base template with additional team settings, channels, apps, or tabs.

Pour en savoir plus sur les propriétés et les types de modèles de base pris en charge, reportez-vous à la rubrique sur la prise en main des modèles Teams.To learn more about supported base template types and supported properties, see Get started with Teams templates.

DemandeRequest

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')"
      }
   ]
}

RéponseResponse

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

Exemple 8 : créer une équipe en mode migrationExample 8: Create a team in migration mode

DemandeRequest

L’exemple suivant montre comment créer une équipe pour les messages importés.The following example shows how to create a team for imported messages.

Remarque À l’avenir, Microsoft pourra exiger que vous ou vos clients payiez des frais supplémentaires en fonction du volume de données accessible via l’API.Note: In the future, Microsoft may require you or your customers to pay additional fees based on the amount of data imported.|

Remarque : Les équipes créées en mode migration prennent en charge uniquement le modèle standard.Note: Teams created in migration mode only support the standard template.

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"
}

RéponseResponse

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')

Réponse d’erreurError response

Si la requête échoue, cette méthode renvoie un code de réponse 400 Bad Request.If the request is unsuccessful, this method returns a 400 Bad Request response code.

400 Bad Request

Voici quelques-unes des raisons qui peuvent être à l’origine de cette réponse :The following are common reasons for this response:

  • createdDateTime est défini à l’avenir.createdDateTime is set in the future.
  • createdDateTime est correctement spécifiée, mais l’attribut d’instance teamCreationMode est manquant ou a une valeur non valide.createdDateTime is correctly specified but the teamCreationMode instance attribute is missing or set to an invalid value.

Voir aussiSee also