directoryObject: validateProperties
命名空间:microsoft.graph
验证 Microsoft 365 组的显示名称或邮件昵称是否符合命名策略。 客户端可以使用此 API 确定显示名称或邮件昵称是否有效,然后再尝试创建Microsoft 365组。 若要验证现有组的属性,请使用 group: validateProperties 函数。
对邮件和邮件昵称显示名称执行以下策略验证:
- 验证前缀和后缀命名策略
- 验证自定义禁止字策略
- 验证邮件昵称是否唯一
此 API 仅返回遇到的第一个验证失败。 如果属性无法通过多个验证,则仅返回第一个验证失败。 但是,如果您仅验证前缀和后缀命名策略,您可以验证邮件昵称和显示名称并接收验证错误集合。 若要详细了解如何配置命名策略,请参阅 配置命名策略。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
Group.Read.All、Directory.Read.All、Directory.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
Group.Read.All、Group.ReadWrite.All、Directory.Read.All、Directory.ReadWrite.All |
HTTP 请求
POST /directoryObjects/validateProperties
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json |
请求正文
在请求正文中,提供具有以下参数的 JSON 对象。
| 参数 |
类型 |
说明 |
| entityType |
String |
组是唯一受支持的实体类型。 |
| displayName |
String |
要显示名称组的成员。 属性不单独是必需的。 但是,至少需要一 (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/directoryObjects/validateProperties
Content-type: application/json
{
"entityType": "Group",
"displayName": "Myprefix_test_mysuffix",
"mailNickname": "Myprefix_test_mysuffix",
"onBehalfOfUserId": "onBehalfOfUserId-value"
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var entityType = "Group";
var displayName = "Myprefix_test_mysuffix";
var mailNickname = "Myprefix_test_mysuffix";
var onBehalfOfUserId = Guid.Parse("onBehalfOfUserId-value");
await graphClient.DirectoryObjects
.ValidateProperties(entityType,displayName,mailNickname,onBehalfOfUserId)
.Request()
.PostAsync();
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const validateProperties = {
entityType: 'Group',
displayName: 'Myprefix_test_mysuffix',
mailNickname: 'Myprefix_test_mysuffix',
onBehalfOfUserId: 'onBehalfOfUserId-value'
};
await client.api('/directoryObjects/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:@"/directoryObjects/validateProperties"]]];
[urlRequest setHTTPMethod:@"POST"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
NSMutableDictionary *payloadDictionary = [[NSMutableDictionary alloc] init];
NSString *entityType = @"Group";
payloadDictionary[@"entityType"] = entityType;
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 entityType = "Group";
String displayName = "Myprefix_test_mysuffix";
String mailNickname = "Myprefix_test_mysuffix";
UUID onBehalfOfUserId = UUID.fromString("onBehalfOfUserId-value");
graphClient.directoryObjects()
.validateProperties(DirectoryObjectValidatePropertiesParameterSet
.newBuilder()
.withEntityType(entityType)
.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()
entityType := "Group"
requestBody.SetEntityType(&entityType)
displayName := "Myprefix_test_mysuffix"
requestBody.SetDisplayName(&displayName)
mailNickname := "Myprefix_test_mysuffix"
requestBody.SetMailNickname(&mailNickname)
onBehalfOfUserId := "onBehalfOfUserId-value"
requestBody.SetOnBehalfOfUserId(&onBehalfOfUserId)
graphClient.DirectoryObjects().ValidateProperties().Post(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.DirectoryObjects
$params = @{
EntityType = "Group"
DisplayName = "Myprefix_test_mysuffix"
MailNickname = "Myprefix_test_mysuffix"
OnBehalfOfUserId = "onBehalfOfUserId-value"
}
Test-MgDirectoryObjectProperty -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
HTTP/1.1 204 No Content
示例 2:出现验证错误的请求
这是一个出现验证错误的请求示例。
请求
POST https://graph.microsoft.com/v1.0/directoryObjects/validateProperties
Content-type: application/json
{
"entityType": "Group",
"displayName": "test",
"mailNickname": "test",
"onBehalfOfUserId": "onBehalfOfUserId-value"
}
响应
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": "request-id-value",
"date": "date-value"
},
"details": [
{
"target": "displayName",
"code": "MissingPrefixSuffix",
"message": "Property mailNickname is missing a required prefix/suffix per your organization's Group naming requirements.",
"prefix": "Myprefix_",
"suffix": "_mysuffix"
},
{
"target": "mailNickname",
"code": "MissingPrefixSuffix",
"message": "Property mailNickname is missing a required prefix/suffix per your organization's Group naming requirements.",
"prefix": "Myprefix_",
"suffix": "_mysuffix"
}
]
}
}