首页 > 解决方案 > Microsoft Graph - 如何为用户扩展属性“过滤”

问题描述

使用 microsoft graph api 并偶然发现了由于某种原因失败的查询。

https://graph.microsoft.com/v1.0/users?$top=5&$select=displayName,id,extension_{ID}_ContactId&$filter=extension_{ID}_ContactId in ('11223344-5c2f-4b4d-94f6-d9a4ac441d75', '55667788-5c2f-4b4d-94f6-d9a4ac441d75')

回复:

{
    "error": {
        "code": "InternalServerError",
        "message": "Value cannot be null.\r\nParameter name: elementType",
        "innerError": {
            "date": "2021-02-23T12:56:42",
            "request-id": "592915ae-c174-44e3-a4ca-9298e16bc3c6",
            "client-request-id": "592915ae-c174-44e3-a4ca-9298e16bc3c6"
        }
    }
}

然而,比较单个值似乎工作得很好: https://graph.microsoft.com/v1.0/users?$top=5&$select=displayName,id,extension_{ID}_ContactId&$filter=extension_{ID}_ContactId eq '46450218-5c2f-4b4d-94f6-d9a4ac441d75'

使用...&$filter=displayName in ('value1', 'value2')- 也可以按预期工作。

有人可以指出一个有意义的线索来解决 elementType 的错误吗?

标签: azure-active-directorymicrosoft-graph-api

解决方案


错误信息没有意义。

基于过滤器文档

注意:对这些运算符的支持因实体而异。

扩展属性实体目前不支持in逻辑运算符。

如果我们in在 Azure AD Graph 中使用相同的运算符,它将显示Syntax error.

不难得出一个in尚未得到支持的结论。

你可以extension_{ID}_ContactId eq 'value1' or extension_{ID}_ContactId eq 'value2'改用。


推荐阅读