【问题标题】:Why does a user filter result in an "Unsupported query"?为什么用户过滤器会导致“不支持的查询”?
【发布时间】:2017-12-04 16:39:40
【问题描述】:

我正在使用 .NET Microsoft Graph API 向我的 Azure AD 发出查询,如下所示:

var userRequest = _graphClient.Users.Delta();
var filter = "startswith(displayName,'K')";
var users = await userRequest.Request().Filter(filter).GetAsync();

根据 Fiddler 流量,这会产生如下所示的 HTTP GET:

GET /v1.0/users/microsoft.graph.delta?$filter=startswith(displayName,'K')

回复:

400 Bad Request
Content-Type: application/json
Preference-Applied: odata.track-changes

{
  "error": {
    "code": "Request_UnsupportedQuery",
    "message": "Unsupported query.",
    "innerError": {
      "request-id": "UUID",
      "date": "2017-12-04T16:26:23"
    }
  }
}

我什至尝试过类似的过滤器:

var filter = "accountEnabled eq true";

但同样的 400 错误也会发生。

删除过滤器会导致查询成功。

为什么这个过滤器会导致“不支持的查询”?从我在Supported queries, filters, and paging options 文档中读到的内容看来,这些都是有效的查询。

【问题讨论】:

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


    【解决方案1】:

    /users 端点支持$filter=startsWith() 查询参数,但/users/delta 端点不支持。 /delta 端点有许多查询限制,包括这个。

    【讨论】:

    • 在哪里可以找到/delta 端点的过滤器限制?如前所述,我也只是尝试了一个简单的accountEnabled eq true,但同样的错误也被拒绝了。我可以用/delta 做任何过滤吗?
    • 说实话,这里的文档很薄。它确实应该在 Delta Overview 上提及,但仅在 $filter 进入 beta 端点时提及。
    • 那么现在/delta 根本不可能过滤吗?
    猜你喜欢
    • 1970-01-01
    • 2016-10-11
    • 2019-08-17
    • 1970-01-01
    • 2015-05-09
    • 2016-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多