【发布时间】:2020-10-01 09:42:08
【问题描述】:
我正在使用 Microsoft Graph C# SDK 从用户那里检索某些日历事件。使用方法
var calendarView = await graphClient.Users[mail].CalendarView.Request(
new List<QueryOption>()
{
new QueryOption("startDateTime", $"{DateTime.Now.AddMonths(-1).ToString("s")}"),
new QueryOption("endDateTime", $"{DateTime.Now.AddMonths(1).ToString("s")}")
})
.Expand("singleValueExtendedProperties($filter=id eq 'String {MY-GUID-HERE} Name Creator')")
.GetAsync();
工作正常。我得到了时间范围内的事件以及自定义属性。现在,我只想从列表中捕获这个事件,它具有以下属性:
Microsoft.Graph.EventSingleValueExtendedPropertiesCollectionPage
Id: 'String {MY-GUID-HERE} Name Creator'
Value: 'SyncUser'
所以我按照文档添加了Filter() 方法。
var calendarView = await graphClient.Users[mail].CalendarView.Request(
new List<QueryOption>()
{
new QueryOption("startDateTime", $"{DateTime.Now.AddMonths(-1).ToString("s")}"),
new QueryOption("endDateTime", $"{DateTime.Now.AddMonths(1).ToString("s")}")
})
.Filter("singleValueExtendedProperties/Any(ep: ep/id eq 'String {MY-GUID-HERE} Name Creator' and ep/value eq 'SyncUser')")
.Expand("singleValueExtendedProperties($filter=id eq 'String {MY-GUID-HERE} Name Creator')")
.GetAsync();
我得到零结果。我确实检查了查询、GUID、值、复制值等所有内容。但是,查询仍然没有结果。但是,注释掉 Filter 方法会返回包含我要查找的项目的整个列表。
更新:我从我的第一个程序中公开了 HttpRequestMessage(仅限Expand()),因此我可以在 Graph Explorer 中使用该 url。尽管我的 C# 程序使用相同的 url,但使用 Graph 我得到以下错误:
GET https://graph.microsoft.com/v1.0/me/calendarview?startdatetime=2020-09-02T07:34:05.397Z&enddatetime=2020-10-09T07:34:05.397Z&$expand=singleValueExtendedProperties($filter=id%20eq%20'String%20%7BMY-GUID-HERE%7D%20Name%20Creator')
{
"error": {
"code": "BadRequest",
"message": "Parsing OData Select and Expand failed: Found an unbalanced bracket expression.",
"innerError": {
"date": "2020-10-02T07:38:40",
"request-id": "50f365a4-d936-4173-a650-ed7f318da08f",
"client-request-id": "c4669369-61f5-016d-cb2c-efd1b738c5af"
}
}
}
第二个(扩展和过滤):
GET https://graph.microsoft.com/v1.0/me/calendarView?startDateTime=2020-08-02T09:41:09&endDateTime=2020-12-02T09:41:09&$filter=singleValueExtendedProperties/Any(ep: ep/id eq 'String {MY-GUID-HERE} Name Creator' and ep/value eq 'SyncUser')&$expand=singleValueExtendedProperties($filter=id eq 'String {MY-GUID-HERE} Name Creator')
返回完全相同的错误消息。
【问题讨论】:
-
你在 Graph Explorer 中试过了吗?您是否也面临同样的问题?
-
是的,我现在编辑了我的问题。
-
扩展和过滤不能像Known Issues 中指定的那样结合使用。请在Microsoft Graph Feedback Forum 中提出用户意见。
标签: c# .net microsoft-graph-api microsoft-graph-sdks microsoft-graph-calendar