【发布时间】:2018-07-23 18:16:03
【问题描述】:
我在阅读 Microsoft 文档后确信我可以使用 OData 查询参数过滤组成员,因为https://developer.microsoft.com/en-us/graph/docs/api-reference/v1.0/api/group_list_members
请求 GET URL - https://graph.microsoft.com/v1.0/groups/{groupId}/members?filter= startswith(givenname,'V')
在上面的 URL 中 groupId 使用来自https://graph.microsoft.com/v1.0/groups
但是当我尝试使用 Graph Explorer (https://developer.microsoft.com/en-us/graph/graph-explorer) 使用我的工作帐户登录来获取结果时,它不起作用。
我也尝试在 SDK 中使用它(我已经在我的代码中使用 Microsoft 图形 API SDK 实现了图形 API)但仍然遇到同样的错误。
并给出以下错误 -
{ “错误”: { "code": "Request_UnsupportedQuery", "message": "当前不支持对引用属性查询的指定过滤器。", “内部错误”:{ “请求ID”:“96f3ffef-56f5-42e3-82f2-64813106b729”, “日期”:“2018-02-13T10:59:39” } } }
这是因为“成员”不是资源类型吗?所以它没有属性,所以我们不能过滤这个结果?
如果是这样,我们还有其他方法可以获得过滤组成员吗?
还在 Github 上发布问题 - https://github.com/microsoftgraph/microsoft-graph-docs/issues/2239
【问题讨论】:
-
我相信这是因为 /members 返回了
directoryObjects 的列表。即使user资源继承自directoryObject,您也不能在此处过滤givenName。您必须进行客户端过滤才能搜索特定成员。 -
根据我的测试,Microsoft graph 和 Azure AD graph 都不支持您提到的针对组成员的筛选查询。正如 RasmusW 评论的那样,您可以检索特定组下的所有成员并在您的客户端中过滤它们。或者,您可以将您的功能请求添加到 Microsoft Graph 团队。
-
@BruceChen 谢谢。应该更正 Microsoft 文档,然后我们无法过滤组成员。
-
我为此创建了一个 UserVoice 建议:officespdev.uservoice.com/forums/…
标签: asp.net-web-api2 azure-active-directory microsoft-graph-api