group:validateProperties
命名空间:microsoft.graph
验证 Microsoft 365 组的显示名称或邮件昵称是否符合命名策略。 在尝试更新Microsoft 365组之前,客户端可以使用此 API 来确定显示名称或邮件昵称是否有效。 若要在创建组之前验证属性,请使用 directoryobject:validateProperties 函数 。
对显示名称和邮件昵称属性执行以下策略验证:
- 验证前缀和后缀命名策略
- 验证自定义禁止字词策略
此 API 仅返回遇到的第一个验证失败。 如果属性多次验证失败,则仅返回第一个验证失败。 但是,如果仅验证前缀和后缀命名策略,则可以验证邮件昵称和显示名称,并接收验证错误的集合。 若要详细了解如何配置命名策略,请参阅 “配置命名策略”。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
Group.Read.All、Group.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| Application |
Group.Read.All、Group.ReadWrite.All |
HTTP 请求
POST /groups/{id}/validateProperties
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
| 参数 |
类型 |
说明 |
| displayName |
字符串 |
要验证的组的显示名称。 属性不是单独必需的。 但是,至少需要一个属性 (displayName 或 mailNickname) 。 |
| mailNickname |
String |
要验证的组的邮件昵称。 属性不是单独必需的。 但是,至少需要一个属性 (displayName 或 mailNickname) 。 |
| onBehalfOfUserId |
Guid |
调用 API 时要模拟的用户的 ID。 验证结果适用于 onBehalfOfUserId 的 属性和角色。 |
响应
如果成功且没有验证错误,则该方法将返回 204 No Content 响应代码。 它不会在响应正文中返回任何内容。
如果请求无效,该方法将返回 400 Bad Request 响应代码。 响应正文中将返回一条错误消息,其中包含有关无效请求的详细信息。
如果出现验证错误。 该方法返回 422 Unprocessable Entity 响应代码。 响应正文中返回错误消息和错误详细信息集合。
示例
示例 1:成功验证请求
这是成功验证请求的示例。
请求
POST https://graph.microsoft.com/v1.0/groups/{id}/validateProperties
Content-type: application/json
{
"displayName": "Myprefix_test_mysuffix",
"mailNickname": "Myprefix_test_mysuffix",
"onBehalfOfUserId": "onBehalfOfUserId-value"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var displayName = "Myprefix_test_mysuffix";
var mailNickname = "Myprefix_test_mysuffix";
var onBehalfOfUserId = Guid.Parse("onBehalfOfUserId-value");
await graphClient.Groups["{group-id}"]
.ValidateProperties(displayName,mailNickname,onBehalfOfUserId)
.Request()
.PostAsync();
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var displayName = "Myprefix_test_mysuffix";
var mailNickname = "Myprefix_test_mysuffix";
var onBehalfOfUserId = Guid.Parse("onBehalfOfUserId-value");
await graphClient.Groups["{group-id}"]
.ValidateProperties(displayName,mailNickname,onBehalfOfUserId)
.Request()
.PostAsync();
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
displayName: 'Myprefix_test_mysuffix',
mailNickname: 'Myprefix_test_mysuffix',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/groups/{id}/validateProperties')
.post(validateProperties);
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
displayName: 'Myprefix_test_mysuffix',
mailNickname: 'Myprefix_test_mysuffix',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/groups/{id}/validateProperties')
.post(validateProperties);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/groups/{id}/validateProperties"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *displayName = @"Myprefix_test_mysuffix";
payloadDictionary[@"displayName"] = displayName;
NSString *mailNickname = @"Myprefix_test_mysuffix";
payloadDictionary[@"mailNickname"] = mailNickname;
NSString *onBehalfOfUserId = @"onBehalfOfUserId-value";
payloadDictionary[@"onBehalfOfUserId"] = onBehalfOfUserId;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/groups/{id}/validateProperties"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *displayName = @"Myprefix_test_mysuffix";
payloadDictionary[@"displayName"] = displayName;
NSString *mailNickname = @"Myprefix_test_mysuffix";
payloadDictionary[@"mailNickname"] = mailNickname;
NSString *onBehalfOfUserId = @"onBehalfOfUserId-value";
payloadDictionary[@"onBehalfOfUserId"] = onBehalfOfUserId;
NSData *data = [NSJSONSerialization dataWithJSONObject:payloadDictionary options:kNilOptions error:&error];
[urlRequest setHTTPBody:data];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
String displayName = "Myprefix_test_mysuffix";
String mailNickname = "Myprefix_test_mysuffix";
UUID onBehalfOfUserId = UUID.fromString("onBehalfOfUserId-value");
graphClient.groups("{id}")
.validateProperties(GroupValidatePropertiesParameterSet
.newBuilder()
.withDisplayName(displayName)
.withMailNickname(mailNickname)
.withOnBehalfOfUserId(onBehalfOfUserId)
.build())
.buildRequest()
.post();
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
String displayName = "Myprefix_test_mysuffix";
String mailNickname = "Myprefix_test_mysuffix";
UUID onBehalfOfUserId = UUID.fromString("onBehalfOfUserId-value");
graphClient.groups("{id}")
.validateProperties(GroupValidatePropertiesParameterSet
.newBuilder()
.withDisplayName(displayName)
.withMailNickname(mailNickname)
.withOnBehalfOfUserId(onBehalfOfUserId)
.build())
.buildRequest()
.post();
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
displayName := "Myprefix_test_mysuffix"
requestBody.SetDisplayName(&displayName)
mailNickname := "Myprefix_test_mysuffix"
requestBody.SetMailNickname(&mailNickname)
onBehalfOfUserId := "onBehalfOfUserId-value"
requestBody.SetOnBehalfOfUserId(&onBehalfOfUserId)
groupId := "group-id"
graphClient.GroupsById(&groupId).ValidateProperties(group-id).Post(requestBody)
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.New()
displayName := "Myprefix_test_mysuffix"
requestBody.SetDisplayName(&displayName)
mailNickname := "Myprefix_test_mysuffix"
requestBody.SetMailNickname(&mailNickname)
onBehalfOfUserId := "onBehalfOfUserId-value"
requestBody.SetOnBehalfOfUserId(&onBehalfOfUserId)
groupId := "group-id"
graphClient.GroupsById(&groupId).ValidateProperties(group-id).Post(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.Groups
$params = @{
DisplayName = "Myprefix_test_mysuffix"
MailNickname = "Myprefix_test_mysuffix"
OnBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgGroupProperty -GroupId $groupId -BodyParameter $params
Import-Module Microsoft.Graph.Groups
$params = @{
DisplayName = "Myprefix_test_mysuffix"
MailNickname = "Myprefix_test_mysuffix"
OnBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgGroupProperty -GroupId $groupId -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 204 No Content
示例 2:具有验证错误的请求
这是具有验证错误的请求的示例。
请求
POST https://graph.microsoft.com/v1.0/groups/{id}/validateProperties
Content-type: application/json
{
"displayName": "MyPrefix_test_mysuffix",
"mailNickname": "MyPrefix_test_mysuffix"
}
响应
HTTP/1.1 422
Content-type: application/json
{
"error": {
"code": "Request_UnprocessableEntity",
"message": "The values provided contain one or more validation errors.",
"innerError": {
"request-id": "id-value",
"date": "date-value"
},
"details": [
{
"target": "mailNickname",
"code": "PropertyConflict",
"message": "Another object with the same value for property mailNickname already exists."
}
]
}
}