MS Graph:如何使用 GraphClient 区分支持团队的 M365 组?

MS Graph: How To Distinguish Teams-Enabled M365 Groups Using GraphClient?

MS Graph rest API 表面 resourceProvisioningOptions attribute to indicate whether a MS365 group is also a Team (see below). However, those values do not appear to be available in the GraphServiceClient.

我发现 , and used the sites endpoint 可以获取 M365 组的关联 SharePoint URL。但一些 M365 组有 SharePoint 网站,而不是 Teams。

我发现的唯一其他选择是使用 teams endpoint 并在找不到组 ID 的团队时捕获异常。但是我仍然必须执行其他站点端点查询才能获取 SharePoint URL.

有人知道在使用 GraphServiceClient 时 another/better 区分 Team/non-Team M365 组的方法吗?

@Tracy,

我在控制台应用程序中测试了 SDK,我相信这个 属性 在组实体下:

或者您可以添加 select 选项以省略返回的属性:

graphClient.Groups.Request().Select("id,resourceProvisioningOptions").GetAsync().Result;

BR

我想继续阅读 Baker_Kong 的有用 post。

此功能在测试版和 v1.0 端点中均可用。它没有在 v1.0 元数据(我们用来生成模型)中描述,这就是您在对象模型中看不到它的原因。在解决此问题之前,您可以使用测试版客户端或:

// Get only groups that have teams.
var groupsThatHaveTeams = await client.Groups.Request().Filter("resourceProvisioningOptions/Any(x:x eq 'Team')").GetAsync()

// When the metadata is fixed, each group will have a ResourceProvisioningOptions property that you can inspect for the 'Team' value.
// Until then, you'd need to look at the Group.AdditionalData dictionary for the resourceProvisioningOptions key and check if it has the 'Team' value.
var groupsThatMayHaveTeams = await client.Groups.Request().Select("id,resourceProvisioningOptions").GetAsync();

https://github.com/microsoftgraph/msgraph-sdk-serviceissues/issues/44#issuecomment-752775347

编辑 post