如何使用Microsoft Graph API为团队设置电子邮件



我们正在创建一个团队组(使用beta Graph API(,我们希望电子邮件地址包含另一个值,而不是基于displayName中提供的值。

在搜索文档时,似乎可以通过在AdditionalData中提供mailNickname的值来实现这一点(https://learn.microsoft.com/en-us/graph/teams-create-group-and-team)。

所以我实现了这一点。不幸的是,邮件地址和别名仍然像TestGroup@domain.nl而不是TestMailNickname@domain.nl

var graphApiServiceClient = new GraphServiceClient(this.authenticationProvider)
{
BaseUrl = "https://graph.microsoft.com/beta"
};
var owner = "valueForOwner";
var teamTemplate = teamTemplateType == TeamTemplateType.Staff
? "educationStaff"
: "educationClass";
var team = new Team
{
AdditionalData = new Dictionary<string, object>
{
{ "template@odata.bind", $"https://graph.microsoft.com/beta/teamsTemplates('{teamTemplate}')" },
{ "owners@odata.bind", new[]{$"https://graph.microsoft.com/beta/users('{owner}')"}},
{ "displayName", "TestGroup" },
{ "description", "This is a testgroup" },
{ "mailNickname", "TestMailNickname" }
}
};
await graphApiServiceClient.Teams.Request().AddAsync(team);

当我随后使用类似await graphApiServiceClient.Groups[objectId].Request().UpdateAsync(new Group { MailNickname = mailNickname});的更新请求更新MailNickname属性时,MailNickname确实发生了更改。

这通过graphApiServiceClient.Groups[objectId].Request().GetAsync()进行确认

不幸的是,它仍然将TestGroup@domain.nl显示为https://admin.microsoft.com/AdminPortal/Home#/groups.

但是,像这样更新值对Mail属性不起作用,因为它在更新请求中声明它是只读的。

有人知道我在最初的创建/添加请求中做错了什么吗?

另外,有人知道为什么仍然显示旧的别名值而不是更新的别名吗https://admin.microsoft.com/AdminPortal/Home#/groups?

这可以通过首先通过Graph api创建一个组,然后使用组ID为该组创建一个团队来实现。

通过";https://graph.microsoft.com/v1.0/groups"。

{  
"displayName": "TestGroup",  
"mailNickname": "TestMailNickname",  
"mailEnabled": true,  
"securityEnabled": false,  
"description": "This is a testgroup",  
"groupTypes": [  
"Unified"  
],  
"owners@odata.bind": [  
"https://graph.microsoft.com/v1.0/users/OWNEDID"  
]  
} 

一旦小组成立,它将输出一个ID,然后你将使用该ID通过";https://graph.microsoft.com/v1.0/groups/YOURIDHERE/team">

身体会看起来像;

{  
"memberSettings": {  
"allowCreateUpdateChannels": false,
"allowAddRemoveApps": false,
"allowCreateUpdateRemoveTabs": false,
"allowCreateUpdateRemoveConnectors": false  
}
}

看起来您使用的是EDU租户,因为您引用的是特定的模板。

我之前已经对此进行了测试,并且上面建议的方法将不适用于";教育班"样板

我让它工作的方式是:

  • 使用模板创建团队

$Teamdata = 
'{
"displayName":"' + $newteamName + '",
"description":"' + $newteamName + '",
"template@odata.bind": "https://graph.microsoft.com/v1.0/teamsTemplates(u0027educationClassu0027)",
"hideFromOutlookClients":  "true",
"hideFromAddressLists":  "true",
"members":[
{
"@odata.type":"#microsoft.graph.aadUserConversationMember",
"roles":[
"owner"
],
"user@odata.bind":"'+ $DefaultOwnerURL + '"
}
]
}'

  • 等待创建组(通常约20秒(
  • 修补组mail昵称

$Body_SetGroupSDSSettings = 
'{
"mailNickname": "' + $newteamMailNickname + '"

}'

这并不完美,但这是我能找到的最好的方法。

相关内容

最新更新