Namespace: microsoft.graph
Criar uma cópia de uma equipa. Esta operação também cria uma cópia do grupo correspondente.
Pode especificar as partes da equipa a clonar:
-
aplicações – copia as aplicações do Microsoft Teams que estão instaladas na equipa.
-
channels – copia a estrutura do canal (mas não as mensagens no canal).
-
membros – copia os membros e proprietários do grupo.
-
definições – copia todas as definições dentro da equipa, juntamente com as definições do grupo de chaves.
-
separadores – copia os separadores nos canais.
Observação
Este método não é suportado para equipas de toda a organização.
Observação
Um problema conhecido relacionado com os proprietários das equipas clonadas está associado a este método. Para mais detalhes, confira Problemas conhecidos.
Quando os separadores são clonados, não são configurados. Os separadores são apresentados na barra de separadores no Microsoft Teams e, quando um utilizador os abre pela primeira vez, tem de percorrer o ecrã de configuração.
Se o utilizador que abre o separador não tiver permissão para configurar aplicações, verá uma mensagem a indicar que o separador não está configurado.
A clonagem é uma operação de execução prolongada. Após a devolução do clone POST, tem de OBTER a operação devolvida pelo Location: cabeçalho para ver se é running, succeededou failed. Deve continuar a obter até que a status não runningseja . O atraso recomendado entre GETs é de 5 segundos.
Esta API está disponível nas seguintes implementações de cloud nacionais.
| Serviço global |
US Government L4 |
US Government L5 (DOD) |
China operada pela 21Vianet |
| ✅ |
✅ |
✅ |
✅ |
Permissões
Escolha a permissão ou permissões marcadas como menos privilegiadas para esta API. Utilize uma permissão ou permissões com privilégios mais elevados apenas se a sua aplicação o exigir. Para obter detalhes sobre as permissões delegadas e de aplicação, veja Tipos de permissão. Para saber mais sobre estas permissões, veja a referência de permissões.
| Tipo de permissão |
Permissões com menos privilégios |
Permissões com privilégios superiores |
| Delegado (conta corporativa ou de estudante) |
Team.Create |
Directory.ReadWrite.All, Group.ReadWrite.All |
| Delegado (conta pessoal da Microsoft) |
Sem suporte. |
Sem suporte. |
| Application |
Team.Create |
Directory.ReadWrite.All, Group.ReadWrite.All |
Observação
O Group.ReadWrite.All e o Directory.ReadWrite.All são suportados apenas para retrocompatibilidade. Recomendamos que você atualize suas soluções para usar uma permissão alternativa listada na tabela anterior e evite usar essas permissões daqui para frente.
Solicitação HTTP
POST /teams/{id}/clone
| Cabeçalho |
Valor |
| Autorização |
{token} de portador. Obrigatório. Saiba mais sobre autenticação e autorização. |
| Content-Type |
application/json |
Corpo da solicitação
| Propriedade |
Tipo |
Descrição |
| classificação |
Cadeia (opcional) |
Descreve uma classificação para o grupo (como impacto comercial baixo, médio ou elevado). Se a classificação não for especificada, a classificação é copiada da equipa/grupo original. |
| description |
Cadeia (opcional) |
Uma descrição opcional para o grupo. Se esta propriedade não for especificada, fica em branco. |
| displayName |
String |
O nome de exibição do grupo. Esta propriedade é necessária quando um grupo é criado e não pode ser limpo durante as atualizações. Oferece suporte a $filter e $orderby. |
| mailNickname |
String |
O alias de email do grupo, exclusivo na organização. Essa propriedade deve ser especificada quando um grupo é criado. Oferece suporte para filter. Se esta propriedade não for especificada, é calculada a partir do displayName. Esta propriedade é atualmente ignorada. |
| partsToClone |
clonableTeamParts |
Uma lista separada por vírgulas das partes a clonar. As partes legais são "aplicações, separadores, definições, canais, membros". |
| visibility |
teamVisibilityType (opcional) |
Especifica a visibilidade do grupo. Os valores possíveis são: Privado, Público. Se a visibilidade não for especificada, a visibilidade é copiada da equipa/grupo original. Se a equipa a ser clonada for uma equipa educationClass , o parâmetro de visibilidade é ignorado e a visibilidade do novo grupo será definida como HiddenMembership. |
Observação
Se a propriedade description não for especificada no corpo do pedido, utiliza o valor da propriedade displayName do payload do pedido.
Resposta
Se for bem-sucedido, este método devolve um 202 Accepted código de resposta com um cabeçalho Localização: que aponta para o recurso de operação .
Quando a operação estiver concluída, o recurso da operação indica-lhe o ID da equipa criada.
Exemplo
Solicitação
O exemplo a seguir mostra uma solicitação.
POST https://graph.microsoft.com/v1.0/teams/{id}/clone
Content-Type: application/json
{
"displayName": "Library Assist",
"description": "Self help community for library",
"mailNickname": "libassist",
"partsToClone": "apps,tabs,settings,channels,members",
"visibility": "public"
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Teams.Item.Clone;
using Microsoft.Graph.Models;
var requestBody = new ClonePostRequestBody
{
DisplayName = "Library Assist",
Description = "Self help community for library",
MailNickname = "libassist",
PartsToClone = ClonableTeamParts.Apps | ClonableTeamParts.Tabs | ClonableTeamParts.Settings | ClonableTeamParts.Channels | ClonableTeamParts.Members,
Visibility = TeamVisibilityType.Public,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
await graphClient.Teams["{team-id}"].Clone.PostAsync(requestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest major version. Current major version is $v1.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-sdk-go"
graphteams "github.com/microsoftgraph/msgraph-sdk-go/teams"
graphmodels "github.com/microsoftgraph/msgraph-sdk-go/models"
//other-imports
)
requestBody := graphteams.NewClonePostRequestBody()
displayName := "Library Assist"
requestBody.SetDisplayName(&displayName)
description := "Self help community for library"
requestBody.SetDescription(&description)
mailNickname := "libassist"
requestBody.SetMailNickname(&mailNickname)
partsToClone := graphmodels.APPS,TABS,SETTINGS,CHANNELS,MEMBERS_CLONABLETEAMPARTS
requestBody.SetPartsToClone(&partsToClone)
visibility := graphmodels.PUBLIC_TEAMVISIBILITYTYPE
requestBody.SetVisibility(&visibility)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
graphClient.Teams().ByTeamId("team-id").Clone().Post(context.Background(), requestBody, nil)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.teams.item.clone.ClonePostRequestBody clonePostRequestBody = new com.microsoft.graph.teams.item.clone.ClonePostRequestBody();
clonePostRequestBody.setDisplayName("Library Assist");
clonePostRequestBody.setDescription("Self help community for library");
clonePostRequestBody.setMailNickname("libassist");
clonePostRequestBody.setPartsToClone(EnumSet.of(ClonableTeamParts.Apps, ClonableTeamParts.Tabs, ClonableTeamParts.Settings, ClonableTeamParts.Channels, ClonableTeamParts.Members));
clonePostRequestBody.setVisibility(TeamVisibilityType.Public);
graphClient.teams().byTeamId("{team-id}").clone().post(clonePostRequestBody);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
const options = {
authProvider,
};
const client = Client.init(options);
const clone = {
displayName: 'Library Assist',
description: 'Self help community for library',
mailNickname: 'libassist',
partsToClone: 'apps,tabs,settings,channels,members',
visibility: 'public'
};
await client.api('/teams/{id}/clone')
.post(clone);
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
<?php
use Microsoft\Graph\GraphServiceClient;
use Microsoft\Graph\Generated\Teams\Item\Clone\ClonePostRequestBody;
use Microsoft\Graph\Generated\Models\ClonableTeamParts;
use Microsoft\Graph\Generated\Models\TeamVisibilityType;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new ClonePostRequestBody();
$requestBody->setDisplayName('Library Assist');
$requestBody->setDescription('Self help community for library');
$requestBody->setMailNickname('libassist');
$requestBody->setPartsToClone(new ClonableTeamParts('apps,tabs,settings,channels,members'));
$requestBody->setVisibility(new TeamVisibilityType('public'));
$graphServiceClient->teams()->byTeamId('team-id')->escapedClone()->post($requestBody)->wait();
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Import-Module Microsoft.Graph.Teams
$params = @{
displayName = "Library Assist"
description = "Self help community for library"
mailNickname = "libassist"
partsToClone = "apps,tabs,settings,channels,members"
visibility = "public"
}
Copy-MgTeam -TeamId $teamId -BodyParameter $params
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.teams.item.clone.clone_post_request_body import ClonePostRequestBody
from msgraph.generated.models.clonable_team_parts import ClonableTeamParts
from msgraph.generated.models.team_visibility_type import TeamVisibilityType
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = ClonePostRequestBody(
display_name = "Library Assist",
description = "Self help community for library",
mail_nickname = "libassist",
parts_to_clone = ClonableTeamParts.Apps | ClonableTeamParts.Tabs | ClonableTeamParts.Settings | ClonableTeamParts.Channels | ClonableTeamParts.Members,
visibility = TeamVisibilityType.Public,
)
await graph_client.teams.by_team_id('team-id').clone.post(request_body)
Para obter detalhes sobre como adicionar o SDK ao seu projeto e criar uma instância authProvider, consulte a documentação do SDK.
Resposta
O exemplo a seguir mostra a resposta. Observação: O objeto de resposta exibido aqui pode ser encurtado para legibilidade.
HTTP/1.1 202 Accepted
Location: /teams({id})/operations({opId})
Content-Type: text/plain
Content-Length: 0
Conteúdo relacionado
Limites de limitação específicos do serviço do Microsoft Graph