我正试图用以下dot.net代码创建一个组:
var groupDef = new Group()
{
DisplayName = name,
MailNickname = name + " " + GetTimestamp(),
Description = "Group/Team created for testing purposes",
Visibility = "Private",
GroupTypes = new string[] { "Unified" }, // same for all teams
MailEnabled = true, // same for all teams
SecurityEnabled = false, // same for all teams
AdditionalData = new Dictionary<string, object>()
{
["owners@odata.bind"] = owners.Select(o => $"{graphV1Endpoint}/users/{o.Id}").ToArray(),
["members@odata.bind"] = members.Select(o => $"{graphV1Endpoint}/users/{o.Id}").ToArray(),
}
};
// Create the modern group for the team
Group group = await graph.Groups.Request().AddAsync(groupDef);
我得到了一个";不允许使用方法"显示的最后一行出现错误(Group Group=wait…(。
身份验证提供程序的作用域参数包含";Group.Read.All Group.ReadWrite.All";。
如果我将Group.Create添加到作用域中,我会收到一个错误,说明该作用域无效。将范围缩小到仅";Group.Create;也给出了一个错误。
当然,我不能在没有group.create的范围内创建组,但这会在登录时引发错误。
Microsoft.Graph版本为3.19.0
Microsoft.Graph.Core的版本为1.22.0
我最终序列化了对象,并用自己的代码进行了Http调用。基本上是这样的:
string json = JsonConvert.SerializeObject(groupDef, jsonSettings);
Group group = HttpPost<Group>("/groups", json);
没有更改任何权限。