Создайте копию команды. Эта операция также создает копию соответствующей группы.
Можно указать, какие части команды следует клонировать:
apps — копирует приложения Microsoft Teams, установленные в команде.
channels — копирует структуру канала (но не сообщения в канале).
members — копирует участников и владельцев группы.
settings — копирует все параметры в команде, а также параметры группы ключей.
tabs — копирует вкладки в каналах.
Примечание.
Этот метод не поддерживается для команд на уровне организации.
Примечание.
С этим методом связана известная проблема, связанная с владельцами клонированных команд. Дополнительные сведения см. в статье Известные проблемы.
Когда вкладки клонируются, они не настраиваются. Вкладки отображаются на панели вкладок в Microsoft Teams, и при первом их открытии пользователь должен пройти через экран конфигурации.
Если пользователь, открывший вкладку, не имеет разрешения на настройку приложений, он увидит сообщение о том, что вкладка не настроена.
Клонирование — это длительная операция. После возврата клона POST необходимо получить операцию , возвращаемую заголовком Location: , чтобы узнать, является runningли она , succeededили failed. Вы должны продолжать GET, пока состояние не runningбудет равно . Рекомендуемая задержка между ГЕТ составляет 5 секунд.
Выберите разрешение или разрешения, помеченные как наименее привилегированные для этого API. Используйте более привилегированное разрешение или разрешения только в том случае, если это требуется приложению. Дополнительные сведения о делегированных разрешениях и разрешениях приложений см. в разделе Типы разрешений. Дополнительные сведения об этих разрешениях см. в справочнике по разрешениям.
Тип разрешения
Разрешения с наименьшими привилегиями
Более высокие привилегированные разрешения
Делегированные (рабочая или учебная учетная запись)
Team.Create
Directory.ReadWrite.All, Group.ReadWrite.All
Делегированные (личная учетная запись Майкрософт)
Не поддерживается.
Не поддерживается.
Приложение
Team.Create
Directory.ReadWrite.All, Group.ReadWrite.All
Примечание.
Group.ReadWrite.All и Directory.ReadWrite.All поддерживаются только для обратной совместимости. Рекомендуется обновить решения, чтобы использовать другое разрешение, указанное в предыдущей таблице, и избегать использования этих разрешений в будущем.
Описывает классификацию для группы (например, низкий, средний или высокий уровень влияния на бизнес). Если классификация не указана, классификация копируется из исходной команды или группы.
description
Строка (необязательно)
Необязательное описание для группы. Если это свойство не указано, оно остается пустым.
displayName
String
Отображаемое имя для группы. Это свойство является обязательным при создании группы и ее невозможно очистить во время обновлений. Поддерживает параметры $filter и $orderby.
mailNickname
String
Почтовый псевдоним для группы (уникальный в организации). Это свойство должно быть указано при создании группы. Поддерживает filter. Если это свойство не указано, оно вычисляется из displayName. Сейчас это свойство игнорируется.
Указывает видимость группы. Возможные значения: Private, Public. Если видимость не указана, видимость копируется из исходной команды или группы. Если клонируется команда educationClass , параметр видимости игнорируется, а видимость новой группы будет иметь значение HiddenMembership.
Примечание.
Если свойство description не указано в тексте запроса, оно принимает значение свойства displayName из полезных данных запроса.
Отклик
В случае успешного 202 Accepted выполнения этот метод возвращает код ответа с заголовком Location: , указывающим на ресурс операции .
После завершения операции ресурс операции сообщает идентификатор созданной команды.
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);
mgc teams clone post --team-id {team-id} --body '{\
"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 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)
// 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);
<?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();
# 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)