过滤包含包含的组

时间:2021-07-05 02:53:09

标签: azure-active-directory microsoft-graph-api

我正在尝试编写 Microsoft Graph 查询来搜索包含特定子字符串的组,但似乎不起作用。我正在努力

https://graph.microsoft.com/v1.0/groups?$filter=contains(displayName, 'test')

出现错误

{
    "error": {
        "code": "Request_BadRequest",
        "message": "An unknown function with name 'contains' was found. This may also be a key lookup on a navigation property, which is not allowed.",
        "innerError": {
            "date": "2021-07-05T02:45:01",
            "request-id": "bbbc58ed-bc0f-4a76-ba41-42a467736518",
            "client-request-id": "fd41da80-0382-8431-027f-e76fd9054fc8"
        }
    }
}

因此,不支持 contains,是否有其他方法可以完成此操作,我认为这是标准要求,应该有某种方法可以完成此操作。我的用例场景是用户输入团队名称,然后我返回包含给定字符串的所有团队。这可以通过搜索 API 实现吗?

1 个答案:

答案 0 :(得分:0)

不支持包含,我们有两个选项可以搜索或过滤

搜索参数:我们可以使用搜索参数,搜索只适用于'displayName'和'description'字段,搜索'directory objects'需要一个特殊的请求头:'ConsistencyLevel: eventual'

过滤器参数:我们可以使用过滤器查询参数按显示名称搜索组。例如,我们可以搜索显示名称以“Test”开头的组,请求 url 像这样:https://graph.microsoft.com/v1.0/groups?$filter=startswith(displayName,'Test')

请查看此 Thread 以供参考,如何使用 Microsoft Graph 通过 DisplayName 搜索组。

参考Use query parameters to customize responses