Microsoft graph api 在Microsoft Graph API中创建具有所有者的组

Microsoft graph api 在Microsoft Graph API中创建具有所有者的组,microsoft-graph-api,Microsoft Graph Api,我想通过Microsoft Graph API添加一个Office 365组。基于API文档,我相信我需要 POST https://graph.microsoft.com/v1.0/groups Content-type: application/json Content-length: 244 { “说明”:“图书馆自助社区”, “显示名称”:“库辅助”, “组类型”:[ “统一” ], “mailEnabled”:正确, “邮件昵称”:“库”, “securityEnabled”:fal

我想通过Microsoft Graph API添加一个Office 365组。基于API文档,我相信我需要

POST https://graph.microsoft.com/v1.0/groups
Content-type: application/json
Content-length: 244
{
“说明”:“图书馆自助社区”,
“显示名称”:“库辅助”,
“组类型”:[
“统一”
],
“mailEnabled”:正确,
“邮件昵称”:“库”,
“securityEnabled”:false
}
但是当我尝试添加

“所有者”:[{@odata.id”:”https://graph.microsoft.com/v1.0/users/{id}“}]
我得到一个错误(该id实际上是办公室中存在的id,所以我不想把它放在这里)

如果我先运行create组,然后再运行addowner,但不是一起运行,它们就可以工作。为什么?


我想让它对我来说尽可能容易。我之所以将postman放在标签中,是因为这是我目前使用的工具,实际上这是受支持的,并且今天可以使用OData绑定语法(即,您的语法不正确)。注意:这是我们的错误,而不是您的错误,因为我们尚未记录此受支持的行为。我将在我们这方面提交一个bug来记录这一点

同时,尝试将此添加到您的请求中(它对我有效),并让我们知道这是否对您有效:

”owners@odata.bind": ["https://graph.microsoft.com/v1.0/users/{id}“]

事实上,在同一请求中,您还可以将成员绑定为请求的一部分:

”owners@odata.bind": [
"https://graph.microsoft.com/v1.0/users/{id1}”
],
"members@odata.bind": [
"https://graph.microsoft.com/v1.0/users/{id1}“,
"https://graph.microsoft.com/v1.0/users/{id2}”
]

我不确定在绑定集合中可以放置的项的数量限制是多少,但我肯定有一个限制。我会看看开发人员是否能对此发表评论


希望这能有所帮助,

丹,谢谢你的解决方案!在此基础上,我创建了同样适用于Graph API的解决方案。诀窍是使用以下类,该类从Graph客户端库继承Group:

公共类GroupExtended:Group
{
[JsonProperty(”owners@odata.bind,NullValueHandling=NullValueHandling.Ignore)]
公共字符串[]OwnersODataBind{get;set;}
[JsonProperty(”members@odata.bind,NullValueHandling=NullValueHandling.Ignore)]
公共字符串[]MembersDataBind{get;set;}
}
然后像这样添加:

var newGroup=newgroupextended
{
DisplayName=DisplayName,
描述=描述,
Mail昵称=Mail昵称,
MailEnabled=true,
SecurityEnabled=false,
可见性=isPrivate==true?“私有”:“公共”,
GroupTypes=新列表{“统一”}
};
if(owners!=null&&owners.Length>0)
{
var users=GetUsers(graphClient,owner);
如果(用户!=null)
{
newGroup.OwnersODataBind=users.Select(u=>string.Format(“https://graph.microsoft.com/v1.0/users/{0},u.Id)).ToArray();
}
}
if(members!=null&&members.Length>0)
{
var users=GetUsers(graphClient,members);
如果(用户!=null)
{
newGroup.MembersDataBind=users.Select(u=>string.Format(“https://graph.microsoft.com/v1.0/users/{0},u.Id)).ToArray();
}
}
等待graphClient.Groups.Request().AddAsync(newGroup);

这里描述了整个解决方案:。

这很有帮助!谢谢与已经声明的所有者和成员一起创建组感觉好多了!我可以再问一个问题吗?我想知道我是否可以删除对新成员的通知?(这是一个测试阶段,所以我不想打扰其他同事)目前没有,但我们正在研究。如果微软的任何人看到这一点,请您将
所有者
(以及有效属性值的示例)添加到
的列出属性中。这里有一条关于不要创建没有所有者的组的警告,因此,如果文档能够描述如何做到这一点,将会很有帮助。谢谢。啊,刚才看到了一个使用所有者创建组的示例,它仍然使用与上面答案中定义的相同语法。谢谢