【问题标题】:No results when filtering a CalendarView by an extended Property通过扩展属性过滤 CalendarView 时没有结果
【发布时间】: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


【解决方案1】:

OData 查询参数存在一些限制,其中无法按照Known Issues 中的规定组合使用“扩展”和“过滤器”。请在Microsoft Graph Feedback Forum 中提出指定此 API 调用的功能请求,以便产品团队在未来实施。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-26
    • 2012-05-16
    • 2018-10-10
    • 1970-01-01
    • 1970-01-01
    • 2017-07-08
    • 1970-01-01
    • 2010-11-11
    相关资源
    最近更新 更多