GraphServiceClient 过滤器问题

GraphServiceClient filter issue

我按照此页面设置了 MicrosoftGraphProvider:http://www.keithmsmith.com/get-started-microsoft-graph-api-calls-net-core-3/

这工作正常,因为我可以通过以下请求获得所有用户的列表。

var user = await _graphServiceClient.Users.Request().GetAsync();

但是,我并不总是希望返回所有用户,因此我通过电子邮件对用户进行了筛选。

示例说要这样做

var user = await _graphServiceClient.Users[email].Request().GetAsync();

但这总是导致找不到用户,即使我从所有用户的回复中传递了有效的电子邮件。

所以我尝试构建一个过滤器,并按照这种方式进行。

var test = await _graphServiceClient.Users["$filter=startswith(mail,'test@email.com')"].Request().GetAsync();

var test = await _graphServiceClient.Users["$filter=(startswith(mail,'test@email.com'))"].Request().GetAsync();

这两个都返回错误:

Status Code: BadRequest
Microsoft.Graph.ServiceException: Code: BadRequest
Message: The $filter path segment must be in the form $filter(expression), where the expression resolves to a boolean.

当我在直接调用 url 的 Postman 中使用它时,这个过滤器工作正常。但我正在尝试使用他们的 sdk,但它没有按预期工作。

这个过滤器查询有什么问题?

$filter 应在 Filter 方法中指定。您关注的文章未反映当前 API.

var users = await _graphServiceClient.Users
.Request()
.Filter("startswith(mail,'test@email.com')")
.GetAsync();

勾选documentation