Create um novo objeto de grupo se ele não existir ou atualizar as propriedades de um objeto de grupo existente.
Você pode criar ou atualizar os seguintes tipos de grupo:
Grupo do Microsoft 365 (grupo unificado)
Grupo de segurança
Por padrão, essa operação retorna apenas um subconjunto das propriedades para cada grupo. Para obter uma lista de propriedades retornadas por padrão, consulte a seção Propriedades do recurso de grupo . Para obter propriedades não retornadas por padrão, execute uma operação GET e especifique as propriedades em uma opção de consulta $select do OData.
Observação: para criar uma equipe, primeiro crie um grupo e adicione uma equipe a ela. Para obter mais informações, consulte Create equipe.
Permissões
Escolha a permissão ou as permissões marcadas como menos privilegiadas para essa API. Use uma permissão ou permissões privilegiadas mais altas somente se o aplicativo exigir. Para obter detalhes sobre permissões delegadas e de aplicativo, consulte Tipos de permissão. Para saber mais sobre essas permissões, consulte a referência de permissões.
Tipo de permissão
Permissões menos privilegiadas
Permissões privilegiadas mais altas
Delegado (conta corporativa ou de estudante)
Group.ReadWrite.All
Directory.ReadWrite.All
Delegado (conta pessoal da Microsoft)
Sem suporte.
Sem suporte.
Application
Group.Create
Directory.ReadWrite.All, Group.ReadWrite.All
Para um aplicativo com o Grupo. Create permissão para criar um grupo com proprietários ou membros, ele deve ter os privilégios para ler o tipo de objeto que deseja atribuir como proprietário ou membro do grupo. Portanto:
O aplicativo pode atribuir-se como proprietário ou membro do grupo.
Para criar o grupo com usuários como proprietários ou membros, o aplicativo deve ter pelo menos a permissão User.Read.All .
Para criar o grupo com outras entidades de serviço como proprietários ou membros, o aplicativo deve ter pelo menos a permissão Application.Read.All .
Para criar o grupo com usuários ou entidades de serviço como proprietários ou membros, o aplicativo deve ter pelo menos a permissão Directory.Read.All .
Solicitação HTTP
PATCH /groups/(uniqueName='uniqueName')
Cabeçalhos de solicitação
Nome
Descrição
Autorização
{token} de portador. Obrigatório.
Content-Type
application/json. Obrigatório.
Preferir
create-if-missing. Necessário para um comportamento upsert, caso contrário, a solicitação é tratada como uma operação de atualização.
Corpo da solicitação
No corpo da solicitação, forneça uma representação JSON do objeto de grupo.
A tabela a seguir lista as propriedades necessárias ao criar o grupo. Especifique outras propriedades graváveis conforme necessário para seu grupo na criação ou atualização.
Propriedade
Tipo
Descrição
displayName
Cadeia de caracteres
O nome para exibição no catálogo de endereços do grupo. O comprimento máximo é de 256 caracteres. Obrigatório.
mailEnabled
Boolean
Definir como true para grupos habilitados para email. Obrigatório.
mailNickname
String
O alias de email do grupo, exclusivo para grupos do Microsoft 365 na organização. O comprimento máximo é de 64 caracteres. Essa propriedade pode conter apenas caracteres no conjunto de caracteres ASCII de 0 a 127, exceto o seguinte: @ () \ [] " ; : <> , SPACE. Obrigatório.
securityEnabled
Boolean
Definido como true para grupos habilitados para segurança, incluindo Microsoft 365 grupos. Obrigatório. Nota: Os grupos criados usando o centro de administração do Microsoft Entra ou o portal do Azure sempre têm securityEnabled inicialmente definido como true.
Importante
Criar um grupo usando a permissão de aplicativo Group.Create sem especificar proprietários criará o grupo anonimamente e o grupo não será modificável. Adicione proprietários ao grupo ao criá-lo para especificar os proprietários que podem modificar o grupo.
Ao criar um grupo do Microsoft 365 programaticamente com um contexto somente de aplicativo e sem especificar os proprietários, o grupo será criado anonimamente. Se assim o fizer, o site associado do SharePoint Online só será criado automaticamente, após a execução de outras ações manuais.
As seguintes propriedades não podem ser definidas na solicitação post inicial e devem ser definidas em uma solicitação PATCH subsequente: allowExternalSenders, autoSubscribeNewMembers, hideFromAddressLists, hideFromOutlookClients, isSubscribedByMail, unseenCount.
Como o recurso de grupo dá suporte a extensões, você pode adicionar propriedades personalizadas com seus próprios dados para o grupo ao criá-lo.
Opções de groupTypes
Use a propriedade groupTypes para controlar o tipo de grupo e sua associação, conforme mostrad.
Tipo de grupo
Associação atribuída
Associação dinâmica
Microsoft 365 (também conhecido como grupo unificado)
["Unified"]
["Unified","DynamicMembership"]
Dinâmica
[] (null)
["DynamicMembership"]
Resposta
Se for bem-sucedido, se o objeto com o uniqueName não existir, esse método retornará um código de 201 Created resposta e um novo objeto de grupo no corpo da resposta.
Se o objeto com o uniqueName já existir, esse método atualizará o objeto de grupo e retornará um código de 204 No Content resposta.
Exemplos
Exemplo 1: Create um grupo do Microsoft 365 se ele não existir
O exemplo a seguir cria um grupo do Microsoft 365 porque não existe um grupo com o valor uniqueName especificado. Como os proprietários não foram especificados, o usuário que fez a chamada é adicionado automaticamente como proprietário do grupo.
PATCH https://graph.microsoft.com/v1.0/groups(uniqueName='uniqueName')
Content-type: application/json
Prefer: create-if-missing
{
"description": "Self help community for golf",
"displayName": "Golf Assist",
"groupTypes": [
"Unified"
],
"mailEnabled": true,
"mailNickname": "golfassist",
"securityEnabled": false
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Self help community for golf",
DisplayName = "Golf Assist",
GroupTypes = new List<string>
{
"Unified",
},
MailEnabled = true,
MailNickname = "golfassist",
SecurityEnabled = false,
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.GroupsWithUniqueName("{uniqueName}").PatchAsync(requestBody, (requestConfiguration) =>
{
requestConfiguration.Headers.Add("Prefer", "create-if-missing");
});
// THE CLI IS IN PREVIEW. NON-PRODUCTION USE ONLY
mgc groups-with-unique-name patch --unique-name {unique-name-id} --body '{\
"description": "Self help community for golf",\
"displayName": "Golf Assist",\
"groupTypes": [\
"Unified"\
],\
"mailEnabled": true,\
"mailNickname": "golfassist",\
"securityEnabled": false\
}\
'
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Self help community for golf");
group.setDisplayName("Golf Assist");
LinkedList<String> groupTypes = new LinkedList<String>();
groupTypes.add("Unified");
group.setGroupTypes(groupTypes);
group.setMailEnabled(true);
group.setMailNickname("golfassist");
group.setSecurityEnabled(false);
Group result = graphClient.groupsWithUniqueName("{uniqueName}").patch(group, requestConfiguration -> {
requestConfiguration.headers.add("Prefer", "create-if-missing");
});
O exemplo a seguir mostra a resposta. O valor da propriedade preferredDataLocation foi herdado da localização de dados preferencial do criador do grupo.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
Exemplo 2: Create um grupo de segurança com um proprietário e membros se ele não existir
O exemplo a seguir cria um grupo de segurança com um proprietário e membros especificados porque um grupo com o valor uniqueName especificado não existe. Observe que, no máximo, 20 relações, como proprietários e membros, podem ser adicionadas como parte da criação do grupo. Posteriormente, você pode adicionar vários membros adicionais usando a API de membro de adição ou o lote JSON.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Group with designated owner and members",
DisplayName = "Operations group",
GroupTypes = new List<string>
{
},
MailEnabled = false,
MailNickname = "operations2019",
SecurityEnabled = true,
AdditionalData = new Dictionary<string, object>
{
{
"owners@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2",
}
},
{
"members@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc",
"https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14",
}
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.GroupsWithUniqueName("{uniqueName}").PatchAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Group with designated owner and members");
group.setDisplayName("Operations group");
LinkedList<String> groupTypes = new LinkedList<String>();
group.setGroupTypes(groupTypes);
group.setMailEnabled(false);
group.setMailNickname("operations2019");
group.setSecurityEnabled(true);
HashMap<String, Object> additionalData = new HashMap<String, Object>();
LinkedList<String> ownersOdataBind = new LinkedList<String>();
ownersOdataBind.add("https://graph.microsoft.com/v1.0/users/26be1845-4119-4801-a799-aea79d09f1a2");
additionalData.put("owners@odata.bind", ownersOdataBind);
LinkedList<String> membersOdataBind = new LinkedList<String>();
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/ff7cb387-6688-423c-8188-3da9532a73cc");
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/69456242-0067-49d3-ba96-9de6f2728e14");
additionalData.put("members@odata.bind", membersOdataBind);
group.setAdditionalData(additionalData);
Group result = graphClient.groupsWithUniqueName("{uniqueName}").patch(group);
Veja a seguir o exemplo de uma resposta bem-sucedida. Ele inclui apenas propriedades padrão. Posteriormente, você pode acessar as propriedades de navegação de grupo proprietários ou membros para verificar o proprietário ou membros. O valor da propriedade preferredDataLocation foi herdado da localização de dados preferencial do criador do grupo.
Observação: o objeto de resposta mostrado aqui pode ser encurtado para legibilidade.
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Models;
var requestBody = new Group
{
Description = "Group assignable to a role",
DisplayName = "Role assignable group",
GroupTypes = new List<string>
{
"Unified",
},
IsAssignableToRole = true,
MailEnabled = true,
SecurityEnabled = true,
MailNickname = "contosohelpdeskadministrators",
AdditionalData = new Dictionary<string, object>
{
{
"owners@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/99e44b05-c10b-4e95-a523-e2732bbaba1e",
}
},
{
"members@odata.bind" , new List<string>
{
"https://graph.microsoft.com/v1.0/users/6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0",
"https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e",
}
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Groups.PostAsync(requestBody);
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
Group group = new Group();
group.setDescription("Group assignable to a role");
group.setDisplayName("Role assignable group");
LinkedList<String> groupTypes = new LinkedList<String>();
groupTypes.add("Unified");
group.setGroupTypes(groupTypes);
group.setIsAssignableToRole(true);
group.setMailEnabled(true);
group.setSecurityEnabled(true);
group.setMailNickname("contosohelpdeskadministrators");
HashMap<String, Object> additionalData = new HashMap<String, Object>();
LinkedList<String> ownersOdataBind = new LinkedList<String>();
ownersOdataBind.add("https://graph.microsoft.com/v1.0/users/99e44b05-c10b-4e95-a523-e2732bbaba1e");
additionalData.put("owners@odata.bind", ownersOdataBind);
LinkedList<String> membersOdataBind = new LinkedList<String>();
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/6ea91a8d-e32e-41a1-b7bd-d2d185eed0e0");
membersOdataBind.add("https://graph.microsoft.com/v1.0/users/4562bcc8-c436-4f95-b7c0-4f8ce89dca5e");
additionalData.put("members@odata.bind", membersOdataBind);
group.setAdditionalData(additionalData);
Group result = graphClient.groups().post(group);
O exemplo a seguir mostra a resposta. O valor da propriedade preferredDataLocation foi herdado da localização de dados preferencial do criador do grupo.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulte https://aka.ms/ContentUserFeedback.