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();
我按照此页面设置了 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();